%!PS-Adobe-2.0
%%Version: 0.1
%%DocumentFonts: (atend)
%%Pages: (atend)
%%EndComments
%
% Version 3.3.2 prologue for troff files.
%

/#copies 1 store
/aspectratio 1 def
/formsperpage 1 def
/landscape false def
/linewidth .3 def
/magnification 1 def
/margin 0 def
/orientation 0 def
/resolution 720 def
/rotation 1 def
/xoffset 0 def
/yoffset 0 def

/roundpage true def
/useclippath true def
/pagebbox [0 0 612 792] def

/R  /Times-Roman def
/I  /Times-Italic def
/B  /Times-Bold def
/BI /Times-BoldItalic def
/H  /Helvetica def
/HI /Helvetica-Oblique def
/HB /Helvetica-Bold def
/HX /Helvetica-BoldOblique def
/CW /Courier def
/CO /Courier def
/CI /Courier-Oblique def
/CB /Courier-Bold def
/CX /Courier-BoldOblique def
/PA /Palatino-Roman def
/PI /Palatino-Italic def
/PB /Palatino-Bold def
/PX /Palatino-BoldItalic def
/Hr /Helvetica-Narrow def
/Hi /Helvetica-Narrow-Oblique def
/Hb /Helvetica-Narrow-Bold def
/Hx /Helvetica-Narrow-BoldOblique def
/KR /Bookman-Light def
/KI /Bookman-LightItalic def
/KB /Bookman-Demi def
/KX /Bookman-DemiItalic def
/AR /AvantGarde-Book def
/AI /AvantGarde-BookOblique def
/AB /AvantGarde-Demi def
/AX /AvantGarde-DemiOblique def
/NR /NewCenturySchlbk-Roman def
/NI /NewCenturySchlbk-Italic def
/NB /NewCenturySchlbk-Bold def
/NX /NewCenturySchlbk-BoldItalic def
/ZD /ZapfDingbats def
/ZI /ZapfChancery-MediumItalic def
/S  /S def
/S1 /S1 def
/GR /Symbol def

/inch {72 mul} bind def
/min {2 copy gt {exch} if pop} bind def

/setup {
	counttomark 2 idiv {def} repeat pop

	landscape {/orientation 90 orientation add def} if
	/scaling 72 resolution div def
	linewidth setlinewidth
	1 setlinecap

	pagedimensions
	xcenter ycenter translate
	orientation rotation mul rotate
	width 2 div neg height 2 div translate
	xoffset inch yoffset inch neg translate
	margin 2 div dup neg translate
	magnification dup aspectratio mul scale
	scaling scaling scale

	addmetrics
	0 0 moveto
} def

/pagedimensions {
	useclippath userdict /gotpagebbox known not and {
		/pagebbox [clippath pathbbox newpath] def
		roundpage currentdict /roundpagebbox known and {roundpagebbox} if
	} if
	pagebbox aload pop
	4 -1 roll exch 4 1 roll 4 copy
	landscape {4 2 roll} if
	sub /width exch def
	sub /height exch def
	add 2 div /xcenter exch def
	add 2 div /ycenter exch def
	userdict /gotpagebbox true put
} def

/addmetrics {
	/Symbol /S null Sdefs cf
	/Times-Roman /S1 StandardEncoding dup length array copy S1defs cf
} def

/pagesetup {
	/page exch def
	currentdict /pagedict known currentdict page known and {
		page load pagedict exch get cvx exec
	} if
} def

/decodingdefs [
	{counttomark 2 idiv {y moveto show} repeat}
	{neg /y exch def counttomark 2 idiv {y moveto show} repeat}
	{neg moveto {2 index stringwidth pop sub exch div 0 32 4 -1 roll widthshow} repeat}
	{neg moveto {spacewidth sub 0.0 32 4 -1 roll widthshow} repeat}
	{counttomark 2 idiv {y moveto show} repeat}
	{neg setfunnytext}
] def

/setdecoding {/t decodingdefs 3 -1 roll get bind def} bind def

/w {neg moveto show} bind def
/m {neg dup /y exch def moveto} bind def
/done {/lastpage where {pop lastpage} if} def

/f {
	dup /font exch def findfont exch
	dup /ptsize exch def scaling div dup /size exch def scalefont setfont
	linewidth ptsize mul scaling 10 mul div setlinewidth
	/spacewidth ( ) stringwidth pop def
} bind def

/changefont {
	/fontheight exch def
	/fontslant exch def
	currentfont [
		1 0
		fontheight ptsize div fontslant sin mul fontslant cos div
		fontheight ptsize div
		0 0
	] makefont setfont
} bind def

/sf {f} bind def

/cf {
	dup length 2 idiv
	/entries exch def
	/chtab exch def
	/newencoding exch def
	/newfont exch def

	findfont dup length 1 add dict
	/newdict exch def
	{1 index /FID ne {newdict 3 1 roll put}{pop pop} ifelse} forall

	newencoding type /arraytype eq {newdict /Encoding newencoding put} if

	newdict /Metrics entries dict put
	newdict /Metrics get
	begin
		chtab aload pop
		1 1 entries {pop def} for
		newfont newdict definefont pop
	end
} bind def

%
% A few arrays used to adjust reference points and character widths in some
% of the printer resident fonts. If square roots are too high try changing
% the lines describing /radical and /radicalex to,
%
%	/radical	[0 -75 550 0]
%	/radicalex	[-50 -75 500 0]
%
% Move braceleftbt a bit - default PostScript character is off a bit.
%

/Sdefs [
	/bracketlefttp		[201 500]
	/bracketleftbt		[201 500]
	/bracketrighttp		[-81 380]
	/bracketrightbt		[-83 380]
	/braceleftbt		[203 490]
	/bracketrightex		[220 -125 500 0]
	/radical		[0 0 550 0]
	/radicalex		[-50 0 500 0]
	/parenleftex		[-20 -170 0 0]
	/integral		[100 -50 500 0]
	/infinity		[10 -75 730 0]
] def

/S1defs [
	/underscore		[0 80 500 0]
	/endash			[7 90 650 0]
] def
%
% Tries to round clipping path dimensions, as stored in array pagebbox, so they
% match one of the known sizes in the papersizes array. Lower left coordinates
% are always set to 0.
%

/roundpagebbox {
    7 dict begin
	/papersizes [8.5 inch 11 inch 14 inch 17 inch] def

	/mappapersize {
		/val exch def
		/slop .5 inch def
		/diff slop def
		/j 0 def
		0 1 papersizes length 1 sub {
			/i exch def
			papersizes i get val sub abs
			dup diff le {/diff exch def /j i def} {pop} ifelse
		} for
		diff slop lt {papersizes j get} {val} ifelse
	} def

	pagebbox 0 0 put
	pagebbox 1 0 put
	pagebbox dup 2 get mappapersize 2 exch put
	pagebbox dup 3 get mappapersize 3 exch put
    end
} bind def

%%EndProlog
%%BeginSetup
mark
%
% Encoding vector and redefinition of findfont for the ISO Latin1 standard.
% The 18 characters missing from ROM based fonts on older printers are noted
% below.
%

/ISOLatin1Encoding [
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/space
	/exclam
	/quotedbl
	/numbersign
	/dollar
	/percent
	/ampersand
	/quoteright
	/parenleft
	/parenright
	/asterisk
	/plus
	/comma
	/minus
	/period
	/slash
	/zero
	/one
	/two
	/three
	/four
	/five
	/six
	/seven
	/eight
	/nine
	/colon
	/semicolon
	/less
	/equal
	/greater
	/question
	/at
	/A
	/B
	/C
	/D
	/E
	/F
	/G
	/H
	/I
	/J
	/K
	/L
	/M
	/N
	/O
	/P
	/Q
	/R
	/S
	/T
	/U
	/V
	/W
	/X
	/Y
	/Z
	/bracketleft
	/backslash
	/bracketright
	/asciicircum
	/underscore
	/quoteleft
	/a
	/b
	/c
	/d
	/e
	/f
	/g
	/h
	/i
	/j
	/k
	/l
	/m
	/n
	/o
	/p
	/q
	/r
	/s
	/t
	/u
	/v
	/w
	/x
	/y
	/z
	/braceleft
	/bar
	/braceright
	/asciitilde
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/.notdef
	/dotlessi
	/grave
	/acute
	/circumflex
	/tilde
	/macron
	/breve
	/dotaccent
	/dieresis
	/.notdef
	/ring
	/cedilla
	/.notdef
	/hungarumlaut
	/ogonek
	/caron
	/space
	/exclamdown
	/cent
	/sterling
	/currency
	/yen
	/brokenbar		% missing
	/section
	/dieresis
	/copyright
	/ordfeminine
	/guillemotleft
	/logicalnot
	/hyphen
	/registered
	/macron
	/degree			% missing
	/plusminus		% missing
	/twosuperior		% missing
	/threesuperior		% missing
	/acute
	/mu			% missing
	/paragraph
	/periodcentered
	/cedilla
	/onesuperior		% missing
	/ordmasculine
	/guillemotright
	/onequarter		% missing
	/onehalf		% missing
	/threequarters		% missing
	/questiondown
	/Agrave
	/Aacute
	/Acircumflex
	/Atilde
	/Adieresis
	/Aring
	/AE
	/Ccedilla
	/Egrave
	/Eacute
	/Ecircumflex
	/Edieresis
	/Igrave
	/Iacute
	/Icircumflex
	/Idieresis
	/Eth			% missing
	/Ntilde
	/Ograve
	/Oacute
	/Ocircumflex
	/Otilde
	/Odieresis
	/multiply		% missing
	/Oslash
	/Ugrave
	/Uacute
	/Ucircumflex
	/Udieresis
	/Yacute			% missing
	/Thorn			% missing
	/germandbls
	/agrave
	/aacute
	/acircumflex
	/atilde
	/adieresis
	/aring
	/ae
	/ccedilla
	/egrave
	/eacute
	/ecircumflex
	/edieresis
	/igrave
	/iacute
	/icircumflex
	/idieresis
	/eth			% missing
	/ntilde
	/ograve
	/oacute
	/ocircumflex
	/otilde
	/odieresis
	/divide			% missing
	/oslash
	/ugrave
	/uacute
	/ucircumflex
	/udieresis
	/yacute			% missing
	/thorn			% missing
	/ydieresis
] def

/NewFontDirectory FontDirectory maxlength dict def

%
% Apparently no guarantee findfont is defined in systemdict so the obvious
%
%	systemdict /findfont get exec
%
% can generate an error. So far the only exception is a VT600 (version 48.0).
%

userdict /@RealFindfont known not {
	userdict begin
		/@RealFindfont systemdict begin /findfont load end def
	end
} if

/findfont {
	dup NewFontDirectory exch known not {
		dup
		%dup systemdict /findfont get exec	% not always in systemdict
		dup userdict /@RealFindfont get exec
		dup /Encoding get StandardEncoding eq {
			dup length dict begin
				{1 index /FID ne {def}{pop pop} ifelse} forall
				/Encoding ISOLatin1Encoding def
				currentdict
			end
			/DummyFontName exch definefont
		} if
		NewFontDirectory 3 1 roll put
	} if
	NewFontDirectory exch get
} bind def

%%Patch from lp
%%EndPatch from lp

setup
%%EndSetup
%%Page: 1 1
/saveobj save def
mark
1 pagesetup
11 /Palatino-Bold f
(Maintaining) 1956 1320 w
(Files) 2611 1320 w
(on) 2876 1320 w
(Plan) 3033 1320 w
(9) 3286 1320 w
(with) 3369 1320 w
(Mk) 3627 1320 w
9 /Palatino-Italic f
(Andrew) 2553 1507 w
(G.) 2871 1507 w
(Hume) 2982 1507 w
(andrew@research.att.com) 2416 1617 w
(Bob) 2615 1727 w
(Flandrena) 2774 1727 w
(bobf@plan9.bell\255labs.com) 2425 1837 w
9 /Palatino-Roman f
(ABSTRACT) 2641 2102 w
9 /Courier f
(Mk) 1330 2327 w
9 /Palatino-Roman f
(is) 1462 2327 w
(a) 1550 2327 w
(tool) 1619 2327 w
(for) 1799 2327 w
(describing) 1939 2327 w
(and) 2380 2327 w
(maintaining) 2557 2327 w
(dependencies) 3065 2327 w
(between) 3634 2327 w
(files.) 3995 2327 w
(It) 4229 2327 w
(is) 4315 2327 w
(similar) 4404 2327 w
(to) 1080 2437 w
(the) 1202 2437 w
(UNIX) 1369 2437 w
(program) 1647 2437 w
9 /Courier f
(make) 2039 2437 w
9 /Palatino-Roman f
(,) 2255 2437 w
(but) 2320 2437 w
(provides) 2496 2437 w
(several) 2891 2437 w
(new) 3214 2437 w
(capabilities.) 3425 2437 w
9 /Courier f
(Mk) 3961 2437 w
9 /Palatino-Roman f
(') 4069 2437 w
9 /Courier f
(s) 4094 2437 w
9 /Palatino-Roman f
(flexible) 4189 2437 w
(rule) 4521 2437 w
(specifications,) 1080 2547 w
(implied) 1688 2547 w
(dependency) 2044 2547 w
(derivation,) 2578 2547 w
(and) 3063 2547 w
(parallel) 3263 2547 w
(execution) 3612 2547 w
(of) 4045 2547 w
(maintenance) 4173 2547 w
(actions) 1080 2657 w
(are) 1391 2657 w
(well\255suited) 1545 2657 w
(to) 2021 2657 w
(the) 2131 2657 w
(Plan) 2286 2657 w
(9) 2493 2657 w
(environment.) 2568 2657 w
(Almost) 3158 2657 w
(all) 3481 2657 w
(Plan) 3608 2657 w
(9) 3815 2657 w
(maintenance) 3890 2657 w
(proce\255) 4427 2657 w
(dures) 1080 2767 w
(are) 1329 2767 w
(automated) 1476 2767 w
(using) 1930 2767 w
9 /Courier f
(mk) 2173 2767 w
9 /Palatino-Roman f
(.) 2281 2767 w
9 /Palatino-Bold f
(1.) 720 3032 w
(Introduction) 834 3032 w
9 /Courier f
(Mk) 970 3193 w
9 /Palatino-Roman f
(performs) 1105 3193 w
(the) 1498 3193 w
(same) 1650 3193 w
(task) 1882 3193 w
(as) 2072 3193 w
9 /Courier f
(make) 2182 3193 w
9 /Palatino-Roman f
([Feld79]) 2425 3193 w
(but) 2776 3193 w
(is) 2937 3193 w
(different) 3028 3193 w
(in) 3400 3193 w
(many) 3505 3193 w
(ways.) 3759 3193 w
(This) 4041 3193 w
(document) 4240 3193 w
(describes) 4671 3193 w
9 /Courier f
(mk) 720 3303 w
9 /Palatino-Roman f
(') 828 3303 w
9 /Courier f
(s) 853 3303 w
9 /Palatino-Roman f
(capabilities) 937 3303 w
(and) 1415 3303 w
(discusses) 1596 3303 w
(how) 1995 3303 w
(they) 2201 3303 w
(are) 2405 3303 w
(used) 2558 3303 w
(in) 2777 3303 w
(Plan) 2884 3303 w
(9.) 3090 3303 w
(There) 3210 3303 w
(are) 3468 3303 w
(occasional) 3621 3303 w
(references) 4062 3303 w
(to) 4495 3303 w
(differences) 4604 3303 w
(between) 720 3413 w
9 /Courier f
(mk) 1079 3413 w
9 /Palatino-Roman f
(and) 1210 3413 w
9 /Courier f
(make) 1385 3413 w
9 /Palatino-Roman f
(,) 1601 3413 w
(but) 1647 3413 w
(an) 1804 3413 w
(appendix) 1924 3413 w
(summarizes) 2323 3413 w
(the) 2829 3413 w
(details.) 2977 3413 w
9 /Courier f
(Mk) 970 3574 w
9 /Palatino-Roman f
(works) 1103 3574 w
(well) 1377 3574 w
(in) 1572 3574 w
(the) 1675 3574 w
(Plan) 1826 3574 w
(9) 2029 3574 w
(environment.) 2100 3574 w
(It) 2686 3574 w
(supports) 2773 3574 w
(program) 3153 3574 w
(construction) 3529 3574 w
(in) 4053 3574 w
(a) 4157 3574 w
(heterogeneous) 4228 3574 w
(envi\255) 4838 3574 w
(ronment) 720 3684 w
(and) 1094 3684 w
(exploits) 1277 3684 w
(the) 1622 3684 w
(power) 1778 3684 w
(of) 2067 3684 w
(multiprocessors) 2178 3684 w
(by) 2847 3684 w
(executing) 2978 3684 w
(maintenance) 3394 3684 w
(actions) 3932 3684 w
(in) 4244 3684 w
(parallel.) 4353 3684 w
(It) 4731 3684 w
(inter\255) 4823 3684 w
(acts) 720 3794 w
(seamlessly) 905 3794 w
(with) 1363 3794 w
(the) 1578 3794 w
(Plan) 1735 3794 w
(9) 1944 3794 w
(command) 2021 3794 w
(interpreter) 2453 3794 w
9 /Courier f
(rc) 2915 3794 w
9 /Palatino-Roman f
(and) 3056 3794 w
(accepts) 3241 3794 w
(pattern\255based) 3564 3794 w
(dependency) 4148 3794 w
(specifica\255) 4668 3794 w
(tions) 720 3904 w
(that) 948 3904 w
(are) 1137 3904 w
(not) 1293 3904 w
(limited) 1457 3904 w
(to) 1774 3904 w
(describing) 1886 3904 w
(rules) 2334 3904 w
(for) 2563 3904 w
(program) 2711 3904 w
(construction.) 3093 3904 w
(The) 3669 3904 w
(result) 3850 3904 w
(is) 4108 3904 w
(a) 4203 3904 w
(tool) 4279 3904 w
(that) 4466 3904 w
(is) 4654 3904 w
(flexible) 4749 3904 w
(enough) 720 4014 w
(to) 1051 4014 w
(perform) 1161 4014 w
(many) 1519 4014 w
(maintenance) 1775 4014 w
(tasks) 2312 4014 w
(including) 2543 4014 w
(database) 2954 4014 w
(maintenance,) 3335 4014 w
(hardware) 3895 4014 w
(design,) 4312 4014 w
(and) 4629 4014 w
(docu\255) 4811 4014 w
(ment) 720 4124 w
(production.) 947 4124 w
(This) 970 4285 w
(document) 1164 4285 w
(begins) 1590 4285 w
(by) 1872 4285 w
(discussing) 1995 4285 w
(the) 2435 4285 w
(syntax) 2583 4285 w
(of) 2868 4285 w
(the) 2971 4285 w
(input) 3119 4285 w
(file,) 3359 4285 w
(the) 3531 4285 w
(pattern) 3680 4285 w
(matching) 3994 4285 w
(capabilities,) 4392 4285 w
(and) 4888 4285 w
(the) 720 4395 w
(special) 873 4395 w
(rules) 1173 4395 w
(for) 1398 4395 w
(maintaining) 1542 4395 w
(archives.) 2053 4395 w
(A) 2458 4395 w
(brief) 2556 4395 w
(description) 2768 4395 w
(of) 3245 4395 w
9 /Courier f
(mk) 3352 4395 w
9 /Palatino-Roman f
(') 3460 4395 w
9 /Courier f
(s) 3485 4395 w
9 /Palatino-Roman f
(algorithm) 3566 4395 w
(for) 3987 4395 w
(deriving) 4130 4395 w
(dependencies) 4496 4395 w
(is) 720 4505 w
(followed) 811 4505 w
(by) 1193 4505 w
(a) 1320 4505 w
(discussion) 1393 4505 w
(of) 1838 4505 w
(the) 1946 4505 w
(conventions) 2099 4505 w
(used) 2611 4505 w
(to) 2829 4505 w
(resolve) 2937 4505 w
(ambiguous) 3252 4505 w
(specifications.) 3726 4505 w
(The) 4338 4505 w
(final) 4516 4505 w
(sections) 4723 4505 w
(describe) 720 4615 w
(parallel) 1074 4615 w
(execution) 1398 4615 w
(and) 1806 4615 w
(special) 1981 4615 w
(features.) 2276 4615 w
(An) 970 4776 w
(earlier) 1115 4776 w
(paper) 1393 4776 w
([Hume87]) 1648 4776 w
(provides) 2072 4776 w
(a) 2448 4776 w
(detailed) 2516 4776 w
(discussion) 2862 4776 w
(of) 3302 4776 w
9 /Courier f
(mk) 3405 4776 w
9 /Palatino-Roman f
(') 3513 4776 w
9 /Courier f
(s) 3538 4776 w
9 /Palatino-Roman f
(design.) 3615 4776 w
9 /Palatino-Bold f
(2.) 720 5041 w
(The) 834 5041 w
9 /Courier f
(Mkfile) 1017 5041 w
(Mk) 970 5202 w
9 /Palatino-Roman f
(reads) 1109 5202 w
(a) 1357 5202 w
(file) 1433 5202 w
(describing) 1589 5202 w
(relationships) 2036 5202 w
(among) 2583 5202 w
(files) 2891 5202 w
(and) 3086 5202 w
(executes) 3270 5202 w
(commands) 3640 5202 w
(to) 4110 5202 w
(bring) 4222 5202 w
(the) 4468 5202 w
(files) 4625 5202 w
(up) 4820 5202 w
(to) 4960 5202 w
(date.) 720 5312 w
(The) 966 5312 w
(specification) 1143 5312 w
(file,) 1670 5312 w
(called) 1845 5312 w
(a) 2107 5312 w
9 /Courier f
(mkfile) 2179 5312 w
9 /Palatino-Roman f
(,) 2503 5312 w
(contains) 2552 5312 w
(three) 2911 5312 w
(types) 3141 5312 w
(of) 3382 5312 w
(statements:) 3488 5312 w
(assignments,) 3965 5312 w
(includes,) 4505 5312 w
(and) 4888 5312 w
(rules.) 720 5422 w
(Assignment) 990 5422 w
(and) 1495 5422 w
(include) 1674 5422 w
(statements) 1997 5422 w
(are) 2452 5422 w
(similar) 2604 5422 w
(to) 2908 5422 w
(those) 3016 5422 w
(in) 3257 5422 w
(C.) 3363 5422 w
(Rules) 3501 5422 w
(specify) 3750 5422 w
(dependencies) 4059 5422 w
(between) 4631 5422 w
(a) 4995 5422 w
9 /Palatino-Italic f
(target) 720 5532 w
9 /Palatino-Roman f
(and) 968 5532 w
(its) 1146 5532 w
9 /Palatino-Italic f
(prerequisites) 1266 5532 w
9 /Palatino-Roman f
(.) 1734 5532 w
(When) 1806 5532 w
(the) 2069 5532 w
(target) 2220 5532 w
(and) 2480 5532 w
(prerequisites) 2658 5532 w
(are) 3201 5532 w
(files,) 3351 5532 w
(their) 3563 5532 w
(modification) 3776 5532 w
(times) 4311 5532 w
(determine) 4552 5532 w
(if) 4984 5532 w
(they) 720 5642 w
(are) 921 5642 w
(out) 1071 5642 w
(of) 1231 5642 w
(date.) 1337 5642 w
(Rules) 1582 5642 w
(often) 1829 5642 w
(contain) 2060 5642 w
(a) 2381 5642 w
9 /Palatino-Italic f
(recipe) 2452 5642 w
9 /Palatino-Roman f
(,) 2671 5642 w
(an) 2720 5642 w
9 /Palatino-Italic f
(rc) 2843 5642 w
9 /Palatino-Roman f
(\(1\)) 2922 5642 w
(script) 3053 5642 w
(that) 3303 5642 w
(produces) 3486 5642 w
(the) 3882 5642 w
(target) 4033 5642 w
(from) 4294 5642 w
(the) 4516 5642 w
(prerequi\255) 4668 5642 w
(sites.) 720 5752 w
(This) 970 5913 w
(simple) 1164 5913 w
9 /Courier f
(mkfile) 1453 5913 w
9 /Palatino-Roman f
(produces) 1800 5913 w
(an) 2193 5913 w
(executable) 2313 5913 w
(from) 2757 5913 w
(a) 2975 5913 w
(C) 3043 5913 w
(source) 3130 5913 w
(file:) 3414 5913 w
8 /Courier f
(CC=pcc) 1008 6097 w
(f1: f1.c) 1008 6197 w
($CC \255o f1 f1.c) 1200 6297 w
9 /Palatino-Roman f
(The) 720 6491 w
(first) 895 6491 w
(line) 1080 6491 w
(assigns) 1252 6491 w
(the) 1565 6491 w
(name) 1716 6491 w
(of) 1961 6491 w
(the) 2067 6491 w
(portable) 2218 6491 w
(ANSI/POSIX) 2578 6491 w
(compiler) 3147 6491 w
(to) 3527 6491 w
(the) 3633 6491 w
9 /Courier f
(mk) 3784 6491 w
9 /Palatino-Roman f
(variable) 3918 6491 w
9 /Courier f
(CC) 4266 6491 w
9 /Palatino-Roman f
(;) 4374 6491 w
(subsequent) 4423 6491 w
(ref\255) 4901 6491 w
(erences) 720 6601 w
(of) 1039 6601 w
(the) 1143 6601 w
(form) 1292 6601 w
9 /Courier f
($CC) 1511 6601 w
9 /Palatino-Roman f
(select) 1697 6601 w
(this) 1940 6601 w
(compiler.) 2109 6601 w
(The) 2532 6601 w
(only) 2705 6601 w
(rule) 2906 6601 w
(specifies) 3088 6601 w
(a) 3449 6601 w
(dependence) 3517 6601 w
(between) 4020 6601 w
(the) 4379 6601 w
(target) 4527 6601 w
(file) 4784 6601 w
9 /Courier f
(f1) 4932 6601 w
9 /Palatino-Roman f
(and) 720 6711 w
(the) 906 6711 w
(prerequisite) 1065 6711 w
(file) 1578 6711 w
9 /Courier f
(f1.c) 1737 6711 w
9 /Palatino-Roman f
(.) 1953 6711 w
(If) 2033 6711 w
(the) 2128 6711 w
(target) 2287 6711 w
(does) 2555 6711 w
(not) 2775 6711 w
(exist) 2941 6711 w
(or) 3159 6711 w
(if) 3279 6711 w
(the) 3369 6711 w
(prerequisite) 3528 6711 w
(has) 4041 6711 w
(been) 4210 6711 w
(modified) 4433 6711 w
(more) 4832 6711 w
(recently) 720 6821 w
(than) 1073 6821 w
(the) 1285 6821 w
(target,) 1443 6821 w
9 /Courier f
(mk) 1733 6821 w
9 /Palatino-Roman f
(passes) 1874 6821 w
(the) 2163 6821 w
(recipe) 2321 6821 w
(to) 2596 6821 w
9 /Courier f
(rc) 2709 6821 w
9 /Palatino-Roman f
(for) 2850 6821 w
(execution.) 2999 6821 w
(Here,) 3463 6821 w
9 /Courier f
(f1.c) 3716 6821 w
9 /Palatino-Roman f
(is) 3965 6821 w
(compiled) 4062 6821 w
(and) 4468 6821 w
(loaded) 4653 6821 w
(to) 4960 6821 w
(produce) 720 6931 w
9 /Courier f
(f1) 1075 6931 w
9 /Palatino-Roman f
(.) 1183 6931 w
(The) 970 7092 w
(native) 1156 7092 w
(Plan) 1439 7092 w
(9) 1652 7092 w
(environment) 1733 7092 w
(requires) 2283 7092 w
(executables) 2645 7092 w
(for) 3140 7092 w
(all) 3292 7092 w
(architectures,) 3425 7092 w
(not) 3998 7092 w
(only) 4167 7092 w
(the) 4382 7092 w
(current) 4544 7092 w
(one.) 4872 7092 w
(The) 720 7202 w
(Plan) 893 7202 w
(9) 1093 7202 w
(version) 1161 7202 w
(of) 1480 7202 w
(the) 1583 7202 w
(same) 1731 7202 w
9 /Courier f
(mkfile) 1959 7202 w
9 /Palatino-Roman f
(looks) 2306 7202 w
(like:) 2543 7202 w
cleartomark
showpage
saveobj restore
%%EndPage: 1 1
%%Page: 2 2
/saveobj save def
mark
2 pagesetup
9 /Palatino-Roman f
(\255 2 \255) 2804 470 w
8 /Courier f
(</$objtype/mkfile) 1008 820 w
(CFLAGS=\255w) 1008 920 w
(f1: f1.$O) 1008 1120 w
($LD $LDFLAGS \255o f1 f1.$O) 1200 1220 w
(f1.$O:) 1008 1320 w
(f1.c) 1392 1320 w
($CC $CFLAGS f1.c) 1200 1420 w
9 /Palatino-Roman f
(The) 720 1616 w
(first) 900 1616 w
(line) 1090 1616 w
(is) 1267 1616 w
(an) 1361 1616 w
(include) 1488 1616 w
(statement) 1814 1616 w
(that) 2234 1616 w
(replaces) 2421 1616 w
(itself) 2776 1616 w
(with) 2999 1616 w
(the) 3212 1616 w
(contents) 3367 1616 w
(of) 3732 1616 w
(the) 3842 1616 w
(file) 3997 1616 w
9 /Courier f
(/$objtype/mkfile) 4153 1616 w
9 /Palatino-Roman f
(.) 5017 1616 w
(The) 720 1726 w
(variable) 896 1726 w
9 /Courier f
($objtype) 1244 1726 w
9 /Palatino-Roman f
(is) 1702 1726 w
(inherited) 1792 1726 w
(from) 2181 1726 w
(the) 2402 1726 w
(environment) 2553 1726 w
(and) 3093 1726 w
(contains) 3271 1726 w
(the) 3630 1726 w
(name) 3781 1726 w
(of) 4026 1726 w
(the) 4132 1726 w
(target) 4283 1726 w
(architecture.) 4542 1726 w
(The) 720 1836 w
(prototype) 895 1836 w
9 /Courier f
(mkfile) 1317 1836 w
9 /Palatino-Roman f
(for) 1666 1836 w
(that) 1807 1836 w
(architecture) 1989 1836 w
(defines) 2489 1836 w
(architecture\255specific) 2801 1836 w
(variables:) 3628 1836 w
9 /Courier f
(CC) 4036 1836 w
9 /Palatino-Roman f
(and) 4170 1836 w
9 /Courier f
(LD) 4348 1836 w
9 /Palatino-Roman f
(are) 4482 1836 w
(the) 4632 1836 w
(names) 4783 1836 w
(of) 720 1946 w
(the) 825 1946 w
(compiler) 975 1946 w
(and) 1354 1946 w
(loader,) 1531 1946 w
9 /Courier f
(O) 1834 1946 w
9 /Palatino-Roman f
(is) 1913 1946 w
(the) 2002 1946 w
(code) 2152 1946 w
(character) 2365 1946 w
(of) 2757 1946 w
(the) 2862 1946 w
(architecture.) 3012 1946 w
(The) 3558 1946 w
(rules) 3733 1946 w
(compile) 3955 1946 w
(the) 4298 1946 w
(source) 4448 1946 w
(file) 4733 1946 w
(into) 4882 1946 w
(an) 720 2056 w
(object) 840 2056 w
(file) 1097 2056 w
(and) 1245 2056 w
(invoke) 1420 2056 w
(the) 1715 2056 w
(loader) 1863 2056 w
(to) 2141 2056 w
(produce) 2244 2056 w
9 /Courier f
(f1) 2599 2056 w
9 /Palatino-Roman f
(.) 2707 2056 w
(Invoking) 2776 2056 w
9 /Courier f
(mk) 3161 2056 w
9 /Palatino-Roman f
(from) 3292 2056 w
(the) 3510 2056 w
(command) 3658 2056 w
(line) 4081 2056 w
(as) 4251 2056 w
(follows) 4357 2056 w
8 /Courier f
(% objtype=sparc mk) 1008 2242 w
(kc \255w f1.c) 1008 2342 w
(kl $LDFLAGS \255o f1 f1.k) 1008 2442 w
(%) 1008 2542 w
9 /Palatino-Roman f
(produces) 720 2738 w
(the) 1113 2738 w
9 /Courier f
(sparc) 1261 2738 w
9 /Palatino-Roman f
(executable) 1554 2738 w
(of) 1998 2738 w
(program) 2101 2738 w
9 /Courier f
(f1) 2474 2738 w
9 /Palatino-Roman f
(regardless) 2605 2738 w
(of) 3038 2738 w
(the) 3141 2738 w
(current) 3289 2738 w
(architecture) 3603 2738 w
(type.) 4101 2738 w
(We) 970 2900 w
(can) 1126 2900 w
(extend) 1286 2900 w
(the) 1579 2900 w
9 /Courier f
(mkfile) 1727 2900 w
9 /Palatino-Roman f
(to) 2074 2900 w
(build) 2177 2900 w
(two) 2411 2900 w
(programs:) 2589 2900 w
8 /Courier f
(</$objtype/mkfile) 1008 3086 w
(CFLAGS=\255w) 1008 3186 w
(ALL=f1 f2) 1008 3286 w
(all:V:) 1008 3486 w
($ALL) 1392 3486 w
(f1: f1.$O) 1008 3686 w
($LD $LDFLAGS \255o f1 f1.$O) 1200 3786 w
(f1.$O:) 1008 3886 w
(f1.c) 1392 3886 w
($CC $CFLAGS f1.c) 1200 3986 w
(f2: f2.$O) 1008 4086 w
($LD $LDFLAGS \255o f2 f2.$O) 1200 4186 w
(f2.$O:) 1008 4286 w
(f2.c) 1392 4286 w
($CC $CFLAGS f2.c) 1200 4386 w
9 /Palatino-Roman f
(The) 720 4582 w
(target) 895 4582 w
9 /Courier f
(all) 1154 4582 w
9 /Palatino-Roman f
(,) 1316 4582 w
(modified) 1364 4582 w
(by) 1753 4582 w
(the) 1878 4582 w
9 /Palatino-Italic f
(attribute) 2028 4582 w
9 /Courier f
(V) 2376 4582 w
9 /Palatino-Roman f
(,) 2430 4582 w
(builds) 2478 4582 w
(both) 2752 4582 w
(programs.) 2959 4582 w
(The) 3418 4582 w
(attribute) 3593 4582 w
(identifies) 3962 4582 w
9 /Courier f
(all) 4356 4582 w
9 /Palatino-Roman f
(as) 4543 4582 w
(a) 4652 4582 w
(dummy) 4723 4582 w
(target) 720 4692 w
(that) 995 4692 w
(is) 1193 4692 w
(not) 1298 4692 w
(related) 1471 4692 w
(to) 1790 4692 w
(a) 1911 4692 w
(file) 1997 4692 w
(of) 2163 4692 w
(the) 2284 4692 w
(same) 2450 4692 w
(name;) 2696 4692 w
(its) 2979 4692 w
(precise) 3114 4692 w
(effect) 3435 4692 w
(is) 3691 4692 w
(explained) 3795 4692 w
(later.) 4226 4692 w
(This) 4492 4692 w
(example) 4703 4692 w
(describes) 720 4802 w
(cascading) 1115 4802 w
(dependencies:) 1532 4802 w
(the) 2125 4802 w
(first) 2276 4802 w
(target) 2463 4802 w
(depends) 2724 4802 w
(on) 3091 4802 w
(another) 3220 4802 w
(which) 3555 4802 w
(depends) 3827 4802 w
(on) 4194 4802 w
(a) 4323 4802 w
(third) 4395 4802 w
(and) 4621 4802 w
(so) 4800 4802 w
(on.) 4915 4802 w
(Here,) 720 4912 w
(individual) 963 4912 w
(rules) 1402 4912 w
(build) 1622 4912 w
(each) 1856 4912 w
(program;) 2059 4912 w
(later) 2455 4912 w
(we'll) 2658 4912 w
(see) 2876 4912 w
(how) 3023 4912 w
(to) 3223 4912 w
(do) 3326 4912 w
(this) 3454 4912 w
(with) 3623 4912 w
(a) 3829 4912 w
(general) 3897 4912 w
(rule.) 4215 4912 w
9 /Palatino-Bold f
(3.) 720 5180 w
(Variables) 834 5180 w
(and) 1252 5180 w
(the) 1430 5180 w
(environment) 1583 5180 w
9 /Courier f
(Mk) 970 5342 w
9 /Palatino-Roman f
(does) 1101 5342 w
(not) 1311 5342 w
(distinguish) 1467 5342 w
(between) 1938 5342 w
(its) 2298 5342 w
(variables) 2416 5342 w
(and) 2800 5342 w
9 /Courier f
(rc) 2976 5342 w
9 /Palatino-Roman f
(variables) 3108 5342 w
(in) 3492 5342 w
(the) 3594 5342 w
(environment.) 3743 5342 w
(When) 4327 5342 w
9 /Courier f
(mk) 4588 5342 w
9 /Palatino-Roman f
(starts,) 4720 5342 w
(it) 4984 5342 w
(imports) 720 5452 w
(each) 1072 5452 w
(environment) 1291 5452 w
(variable) 1844 5452 w
(into) 2205 5452 w
(a) 2402 5452 w
9 /Courier f
(mk) 2486 5452 w
9 /Palatino-Roman f
(variable) 2633 5452 w
(of) 2994 5452 w
(the) 3113 5452 w
(same) 3277 5452 w
(name.) 3521 5452 w
(Before) 3825 5452 w
(executing) 4121 5452 w
(a) 4545 5452 w
(recipe,) 4629 5452 w
9 /Courier f
(mk) 4932 5452 w
9 /Palatino-Roman f
(exports) 720 5562 w
(all) 1045 5562 w
(variables,) 1169 5562 w
(including) 1579 5562 w
(those) 1987 5562 w
(inherited) 2227 5562 w
(from) 2618 5562 w
(the) 2841 5562 w
(environment,) 2994 5562 w
(to) 3559 5562 w
(the) 3667 5562 w
(environment) 3820 5562 w
(in) 4362 5562 w
(which) 4468 5562 w
9 /Courier f
(rc) 4741 5562 w
9 /Palatino-Roman f
(exe\255) 4877 5562 w
(cutes) 720 5672 w
(the) 948 5672 w
(recipe.) 1096 5672 w
(There) 970 5834 w
(are) 1234 5834 w
(several) 1393 5834 w
(ways) 1710 5834 w
(for) 1953 5834 w
(a) 2104 5834 w
(variable) 2184 5834 w
(to) 2541 5834 w
(take) 2656 5834 w
(a) 2859 5834 w
(value.) 2939 5834 w
(It) 3240 5834 w
(can) 3337 5834 w
(be) 3510 5834 w
(set) 3639 5834 w
(with) 3786 5834 w
(an) 4005 5834 w
(assignment) 4138 5834 w
(statement,) 4627 5834 w
(inherited) 720 5944 w
(from) 1110 5944 w
(the) 1332 5944 w
(environment,) 1484 5944 w
(or) 2048 5944 w
(specified) 2161 5944 w
(on) 2543 5944 w
(the) 2672 5944 w
(command) 2824 5944 w
(line.) 3251 5944 w
9 /Courier f
(Mk) 3470 5944 w
9 /Palatino-Roman f
(also) 3604 5944 w
(maintains) 3789 5944 w
(several) 4208 5944 w
(internal) 4516 5944 w
(vari\255) 4852 5944 w
(ables;) 720 6054 w
(these) 979 6054 w
(variables) 1219 6054 w
(are) 1613 6054 w
(described) 1771 6054 w
(in) 2191 6054 w
9 /Palatino-Italic f
(mk) 2303 6054 w
9 /Palatino-Roman f
(\(1\).) 2420 6054 w
(Assignments) 2605 6054 w
(have) 3155 6054 w
(the) 3381 6054 w
(following) 3541 6054 w
(decreasing) 3961 6054 w
(order) 4424 6054 w
(of) 4679 6054 w
(prece\255) 4794 6054 w
(dence:) 720 6164 w
(1\)) 1224 6326 w
(Command) 1345 6326 w
(line) 1792 6326 w
(assignment) 1962 6326 w
(2\)) 1224 6436 w
(Assignment) 1345 6436 w
(statement) 1846 6436 w
(3\)) 1224 6546 w
(Imported) 1345 6546 w
(from) 1746 6546 w
(the) 1964 6546 w
(environment) 2112 6546 w
(4\)) 1224 6656 w
(Implicitly) 1345 6656 w
(set) 1756 6656 w
(by) 1890 6656 w
9 /Courier f
(mk) 2013 6656 w
9 /Palatino-Roman f
(For) 720 6818 w
(example,) 879 6818 w
(a) 1262 6818 w
(command) 1330 6818 w
(line) 1753 6818 w
(assignment) 1923 6818 w
(overrides) 2399 6818 w
(a) 2800 6818 w
(value) 2868 6818 w
(imported) 3110 6818 w
(from) 3506 6818 w
(the) 3724 6818 w
(environment.) 3872 6818 w
(All) 970 6980 w
(variable) 1124 6980 w
(values) 1478 6980 w
(are) 1767 6980 w
(strings.) 1924 6980 w
(They) 2273 6980 w
(can) 2506 6980 w
(be) 2676 6980 w
(used) 2802 6980 w
(for) 3025 6980 w
(pattern) 3174 6980 w
(matching) 3497 6980 w
(and) 3904 6980 w
(comparison) 4089 6980 w
(but) 4592 6980 w
(not) 4759 6980 w
(for) 4924 6980 w
(arithmetic.) 720 7090 w
(A) 1203 7090 w
9 /Palatino-Italic f
(list) 1303 7090 w
9 /Palatino-Roman f
(is) 1455 7090 w
(a) 1549 7090 w
(string) 1624 7090 w
(containing) 1886 7090 w
(several) 2339 7090 w
(values) 2651 7090 w
(separated) 2938 7090 w
(by) 3357 7090 w
(white) 3487 7090 w
(space.) 3743 7090 w
(Each) 4039 7090 w
(member) 4260 7090 w
(is) 4619 7090 w
(handled) 4712 7090 w
(individually) 720 7200 w
(during) 1235 7200 w
(pattern) 1531 7200 w
(matching,) 1844 7200 w
(target) 2264 7200 w
(selection,) 2521 7200 w
(and) 2915 7200 w
(prerequisite) 3090 7200 w
(evaluation.) 3592 7200 w
cleartomark
showpage
saveobj restore
%%EndPage: 2 2
%%Page: 3 3
/saveobj save def
mark
3 pagesetup
9 /Palatino-Roman f
(\255 3 \255) 2804 470 w
(A) 970 830 w
9 /Palatino-Italic f
(namelist) 1064 830 w
9 /Palatino-Roman f
(is) 1405 830 w
(a) 1493 830 w
(list) 1562 830 w
(produced) 1706 830 w
(by) 2117 830 w
(transforming) 2241 830 w
(the) 2790 830 w
(members) 2940 830 w
(of) 3333 830 w
(an) 3438 830 w
(existing) 3560 830 w
(list.) 3897 830 w
(The) 4088 830 w
(transform) 4263 830 w
(applies) 4684 830 w
(a) 4995 830 w
(pattern) 720 940 w
(to) 1042 940 w
(each) 1154 940 w
(member,) 1366 940 w
(replacing) 1751 940 w
(each) 2155 940 w
(matched) 2367 940 w
(string) 2742 940 w
(with) 3005 940 w
(a) 3219 940 w
(new) 3295 940 w
(string,) 3496 940 w
(much) 3782 940 w
(as) 4038 940 w
(in) 4152 940 w
(the) 4261 940 w
(substitute) 4417 940 w
(com\255) 4841 940 w
(mand) 720 1050 w
(in) 974 1050 w
9 /Palatino-Italic f
(sam) 1075 1050 w
9 /Palatino-Roman f
(\(1\)) 1227 1050 w
(or) 1355 1050 w
9 /Palatino-Italic f
(ed) 1464 1050 w
9 /Palatino-Roman f
(\(1\).) 1551 1050 w
(The) 1725 1050 w
(syntax) 1898 1050 w
(is) 2183 1050 w
8 /Courier f
(${) 1008 1221 w
8 /Palatino-Italic f
(var) 1104 1221 w
8 /Courier f
(:A%B=C%D}) 1210 1221 w
9 /Palatino-Roman f
(where) 720 1402 w
9 /Palatino-Italic f
(var) 998 1402 w
9 /Palatino-Roman f
(is) 1154 1402 w
(a) 1247 1402 w
(variable.) 1322 1402 w
(The) 1720 1402 w
(pattern) 1900 1402 w
9 /Courier f
(A%B) 2220 1402 w
9 /Palatino-Roman f
(matches) 2412 1402 w
(a) 2769 1402 w
(member) 2844 1402 w
(beginning) 3204 1402 w
(with) 3635 1402 w
(the) 3848 1402 w
(string) 4003 1402 w
9 /Palatino-Italic f
(A) 4265 1402 w
9 /Palatino-Roman f
(and) 4367 1402 w
(ending) 4549 1402 w
(with) 4857 1402 w
(the) 720 1512 w
(string) 870 1512 w
9 /Palatino-Italic f
(B) 1127 1512 w
9 /Palatino-Roman f
(with) 1213 1512 w
(any) 1420 1512 w
(string) 1591 1512 w
(in) 1847 1512 w
(between;) 1949 1512 w
(it) 2332 1512 w
(behaves) 2412 1512 w
(like) 2758 1512 w
(the) 2927 1512 w
(regular) 3076 1512 w
(expression) 3390 1512 w
9 /Courier f
(A.*B) 3841 1512 w
9 /Palatino-Roman f
(.) 4057 1512 w
(When) 4127 1512 w
(a) 4388 1512 w
(member) 4457 1512 w
(of) 4811 1512 w
(the) 4915 1512 w
9 /Palatino-Italic f
(var) 720 1622 w
9 /Palatino-Roman f
(list) 878 1622 w
(matches) 1029 1622 w
(this) 1387 1622 w
(pattern,) 1564 1622 w
(the) 1908 1622 w
(string) 2064 1622 w
9 /Palatino-Italic f
(C) 2327 1622 w
9 /Palatino-Roman f
(replaces) 2425 1622 w
9 /Palatino-Italic f
(A) 2781 1622 w
9 /Palatino-Roman f
(,) 2853 1622 w
9 /Palatino-Italic f
(D) 2907 1622 w
9 /Palatino-Roman f
(replaces) 3015 1622 w
9 /Palatino-Italic f
(B) 3371 1622 w
9 /Palatino-Roman f
(,) 3433 1622 w
(and) 3487 1622 w
(the) 3670 1622 w
(matched) 3827 1622 w
(string) 4203 1622 w
(replaces) 4467 1622 w
(itself.) 4824 1622 w
(Any) 720 1732 w
(of) 920 1732 w
9 /Palatino-Italic f
(A) 1028 1732 w
9 /Palatino-Roman f
(,) 1100 1732 w
9 /Palatino-Italic f
(B) 1150 1732 w
9 /Palatino-Roman f
(,) 1212 1732 w
9 /Palatino-Italic f
(C) 1262 1732 w
9 /Palatino-Roman f
(,) 1329 1732 w
(or) 1379 1732 w
9 /Palatino-Italic f
(D) 1492 1732 w
9 /Palatino-Roman f
(may) 1596 1732 w
(be) 1797 1732 w
(the) 1917 1732 w
(empty) 2069 1732 w
(string.) 2352 1732 w
(In) 2657 1732 w
(effect,) 2767 1732 w
(a) 3033 1732 w
(namelist) 3105 1732 w
(is) 3471 1732 w
(generated) 3562 1732 w
(by) 3986 1732 w
(applying) 4113 1732 w
(the) 4497 1732 w
9 /Palatino-Italic f
(ed) 4649 1732 w
9 /Palatino-Roman f
(\(1\)) 4736 1732 w
(sub\255) 4868 1732 w
(stitute) 720 1842 w
(command) 994 1842 w
8 /Courier f
(s/) 1200 2013 w
8 /Palatino-Italic f
(A) 1296 2013 w
8 /Courier f
(\(.*\)) 1354 2013 w
8 /Palatino-Italic f
(B) 1546 2013 w
8 /Courier f
(/) 1595 2013 w
8 /Palatino-Italic f
(C) 1643 2013 w
8 /Courier f
(\\1) 1697 2013 w
8 /Palatino-Italic f
(D) 1793 2013 w
8 /Courier f
(/) 1855 2013 w
9 /Palatino-Roman f
(to) 720 2194 w
(each) 823 2194 w
(member) 1026 2194 w
(of) 1379 2194 w
(a) 1482 2194 w
(variable.) 1550 2194 w
(Namelists) 970 2347 w
(are) 1393 2347 w
(useful) 1540 2347 w
(for) 1808 2347 w
(generating) 1947 2347 w
(a) 2397 2347 w
(list) 2465 2347 w
(based) 2608 2347 w
(on) 2862 2347 w
(a) 2987 2347 w
(predictable) 3055 2347 w
(transformation.) 3526 2347 w
(For) 4194 2347 w
(example,) 4353 2347 w
8 /Courier f
(SRC=a.c b.c c.c) 1200 2518 w
(OBJ=${SRC:%.c=%.v}) 1200 2618 w
9 /Palatino-Roman f
(assigns) 720 2799 w
(the) 1033 2799 w
(list) 1184 2799 w
9 /Courier f
(\(a.v) 1330 2799 w
(b.v) 1603 2799 w
(c.v\)) 1822 2799 w
9 /Palatino-Roman f
(to) 2064 2799 w
9 /Courier f
(OBJ) 2170 2799 w
9 /Palatino-Roman f
(.) 2332 2799 w
(A) 2404 2799 w
(namelist) 2500 2799 w
(may) 2865 2799 w
(be) 3065 2799 w
(used) 3184 2799 w
(anywhere) 3400 2799 w
(a) 3822 2799 w
(variable) 3893 2799 w
(is) 4241 2799 w
(allowed) 4331 2799 w
(except) 4678 2799 w
(in) 4962 2799 w
(a) 720 2909 w
(recipe.) 788 2909 w
(Command) 970 3062 w
(output) 1417 3062 w
(is) 1712 3062 w
(assigned) 1799 3062 w
(to) 2169 3062 w
(a) 2272 3062 w
(variable) 2340 3062 w
(using) 2685 3062 w
(the) 2928 3062 w
(normal) 3076 3062 w
9 /Courier f
(rc) 3387 3062 w
9 /Palatino-Roman f
(syntax:) 3518 3062 w
8 /Courier f
(var=`{rc command}) 1200 3233 w
9 /Palatino-Roman f
(The) 720 3414 w
(command) 903 3414 w
(executes) 1336 3414 w
(in) 1707 3414 w
(an) 1818 3414 w
(environment) 1948 3414 w
(populated) 2495 3414 w
(with) 2939 3414 w
(previously) 3155 3414 w
(assigned) 3616 3414 w
(variables,) 3996 3414 w
(including) 4412 3414 w
(those) 4827 3414 w
(inherited) 720 3524 w
(from) 1106 3524 w
9 /Courier f
(mk) 1324 3524 w
9 /Palatino-Roman f
(') 1432 3524 w
9 /Courier f
(s) 1457 3524 w
9 /Palatino-Roman f
(execution) 1534 3524 w
(environment.) 1942 3524 w
(The) 2525 3524 w
(command) 2698 3524 w
(may) 3121 3524 w
(be) 3318 3524 w
(arbitrarily) 3434 3524 w
(complex;) 3863 3524 w
(for) 4248 3524 w
(example,) 4387 3524 w
8 /Courier f
(TARG=`{ls \255d *.[cyl] | sed 's/..$//'}) 1200 3695 w
9 /Palatino-Roman f
(assigns) 720 3876 w
(a) 1031 3876 w
(list) 1100 3876 w
(of) 1244 3876 w
(the) 1348 3876 w
(C,) 1497 3876 w
(yacc,) 1608 3876 w
(and) 1830 3876 w
(Alef) 2006 3876 w
(source) 2199 3876 w
(files) 2484 3876 w
(in) 2671 3876 w
(the) 2773 3876 w
(current) 2922 3876 w
(directory,) 3237 3876 w
(stripped) 3650 3876 w
(of) 4010 3876 w
(their) 4114 3876 w
(suffix,) 4325 3876 w
(to) 4597 3876 w
(the) 4702 3876 w
(vari\255) 4852 3876 w
(able) 720 3986 w
9 /Courier f
(TARG) 907 3986 w
9 /Palatino-Roman f
(.) 1123 3986 w
9 /Palatino-Bold f
(4.) 720 4226 w
(The) 834 4226 w
(include) 1017 4226 w
(statement) 1350 4226 w
9 /Palatino-Roman f
(The) 970 4379 w
(include) 1156 4379 w
(statement) 1488 4379 w
(replaces) 1914 4379 w
(itself) 2276 4379 w
(with) 2506 4379 w
(the) 2726 4379 w
(contents) 2888 4379 w
(of) 3260 4379 w
(a) 3377 4379 w
(file.) 3459 4379 w
(It) 3667 4379 w
(is) 3765 4379 w
(functionally) 3866 4379 w
(similar) 4384 4379 w
(to) 4697 4379 w
(the) 4814 4379 w
(C) 4976 4379 w
9 /Courier f
(#include) 720 4489 w
9 /Palatino-Roman f
(statement) 1175 4489 w
(but) 1588 4489 w
(uses) 1745 4489 w
(a) 1941 4489 w
(different) 2009 4489 w
(syntax:) 2377 4489 w
8 /Courier f
(<) 1200 4660 w
8 /Palatino-Italic f
(filename) 1248 4660 w
9 /Palatino-Roman f
(The) 720 4841 w
(contents) 895 4841 w
(of) 1255 4841 w
(the) 1360 4841 w
(file) 1510 4841 w
(are) 1661 4841 w
(evaluated) 1811 4841 w
(as) 2229 4841 w
(they) 2338 4841 w
(are) 2539 4841 w
(read.) 2689 4841 w
(An) 2940 4841 w
(include) 3088 4841 w
(statement) 3410 4841 w
(may) 3826 4841 w
(be) 4026 4841 w
(used) 4145 4841 w
(anywhere) 4361 4841 w
(except) 4783 4841 w
(in) 720 4951 w
(a) 821 4951 w
(recipe.) 889 4951 w
(Unlike) 970 5104 w
9 /Courier f
(make) 1279 5104 w
9 /Palatino-Roman f
(,) 1495 5104 w
9 /Courier f
(mk) 1560 5104 w
9 /Palatino-Roman f
(has) 1710 5104 w
(no) 1887 5104 w
(built\255in) 2031 5104 w
(rules.) 2367 5104 w
(Instead,) 2652 5104 w
(the) 3011 5104 w
(include) 3178 5104 w
(statement) 3516 5104 w
(allows) 3948 5104 w
(generic) 4251 5104 w
(rules) 4584 5104 w
(to) 4824 5104 w
(be) 4947 5104 w
(imported) 720 5214 w
(from) 1116 5214 w
(a) 1334 5214 w
(prototype) 1402 5214 w
9 /Courier f
(mkfile) 1822 5214 w
9 /Palatino-Roman f
(;) 2146 5214 w
(most) 2192 5214 w
(Plan) 2412 5214 w
(9) 2612 5214 w
9 /Courier f
(mkfiles) 2680 5214 w
9 /Palatino-Roman f
(use) 3081 5214 w
(this) 3239 5214 w
(approach) 3408 5214 w
([Flan95].) 3807 5214 w
9 /Palatino-Bold f
(5.) 720 5454 w
(Rules) 834 5454 w
9 /Palatino-Roman f
(A) 970 5607 w
(rule) 1063 5607 w
(has) 1245 5607 w
(four) 1403 5607 w
(elements:) 1596 5607 w
(targets,) 1996 5607 w
(prerequisites,) 2314 5607 w
(attributes,) 2877 5607 w
(and) 3305 5607 w
(a) 3480 5607 w
(recipe.) 3548 5607 w
(It) 3859 5607 w
(has) 3943 5607 w
(the) 4101 5607 w
(form:) 4249 5607 w
8 /Palatino-Italic f
(targets) 1008 5778 w
8 /Courier f
(:) 1228 5778 w
8 /Palatino-Italic f
(attributes) 1276 5778 w
8 /Courier f
(:) 1586 5778 w
8 /Palatino-Italic f
(prerequisites) 1634 5778 w
(recipe) 1200 5878 w
9 /Palatino-Roman f
(The) 720 6059 w
(first) 898 6059 w
(line,) 1086 6059 w
(containing) 1284 6059 w
(the) 1735 6059 w
(targets,) 1888 6059 w
(attributes,) 2212 6059 w
(and) 2646 6059 w
(prerequisites) 2827 6059 w
(is) 3373 6059 w
(the) 3466 6059 w
9 /Palatino-Italic f
(rule) 3620 6059 w
(header) 3794 6059 w
9 /Palatino-Roman f
(;) 4036 6059 w
(it) 4088 6059 w
(must) 4173 6059 w
(begin) 4403 6059 w
(at) 4653 6059 w
(the) 4757 6059 w
(left) 4911 6059 w
(margin.) 720 6169 w
(The) 1077 6169 w
(recipe) 1250 6169 w
(contains) 1515 6169 w
(zero) 1871 6169 w
(or) 2068 6169 w
(more) 2177 6169 w
(lines,) 2408 6169 w
(each) 2639 6169 w
(of) 2842 6169 w
(which) 2945 6169 w
(begins) 3213 6169 w
(with) 3495 6169 w
(white) 3701 6169 w
(space.) 3950 6169 w
(One) 4239 6169 w
(or) 4428 6169 w
(more) 4537 6169 w
(targets) 4768 6169 w
(must) 720 6279 w
(be) 952 6279 w
(specified) 1076 6279 w
(but) 1462 6279 w
(the) 1627 6279 w
(attributes,) 1783 6279 w
(prerequisites,) 2219 6279 w
(and) 2790 6279 w
(recipe) 2973 6279 w
(are) 3246 6279 w
(optional.) 3402 6279 w
(A) 3813 6279 w
(rule) 3915 6279 w
(specifies) 4106 6279 w
(a) 4476 6279 w
(dependency) 4553 6279 w
(between) 720 6389 w
(the) 1091 6389 w
(targets) 1250 6389 w
(and) 1556 6389 w
(the) 1742 6389 w
(prerequisites;) 1901 6389 w
(the) 2475 6389 w
(recipe) 2634 6389 w
(brings) 2910 6389 w
(the) 3196 6389 w
(targets) 3355 6389 w
(up) 3661 6389 w
(to) 3803 6389 w
(date) 3917 6389 w
(with) 4124 6389 w
(the) 4341 6389 w
(prerequisites.) 4500 6389 w
(Attributes) 720 6499 w
(modify) 1150 6499 w
9 /Courier f
(mk) 1463 6499 w
9 /Palatino-Roman f
(') 1571 6499 w
9 /Courier f
(s) 1596 6499 w
9 /Palatino-Roman f
(evaluation) 1673 6499 w
(of) 2118 6499 w
(a) 2221 6499 w
(rule.) 2289 6499 w
(Normally) 970 6652 w
(the) 1383 6652 w
(target) 1534 6652 w
(is) 1794 6652 w
(a) 1884 6652 w
(file) 1955 6652 w
(that) 2106 6652 w
(depends) 2289 6652 w
(on) 2655 6652 w
(one) 2783 6652 w
(or) 2955 6652 w
(more) 3068 6652 w
(prerequisite) 3303 6652 w
(files.) 3809 6652 w
9 /Courier f
(Mk) 4045 6652 w
9 /Palatino-Roman f
(compares) 4180 6652 w
(the) 4592 6652 w
(modifi\255) 4744 6652 w
(cation) 720 6762 w
(times) 988 6762 w
(of) 1229 6762 w
(each) 1334 6762 w
(target) 1539 6762 w
(and) 1798 6762 w
(each) 1975 6762 w
(prerequisite;) 2180 6762 w
(a) 2707 6762 w
(target) 2777 6762 w
(is) 3036 6762 w
(considered) 3125 6762 w
(out) 3588 6762 w
(of) 3747 6762 w
(date) 3852 6762 w
(when) 4050 6762 w
(it) 4297 6762 w
(does) 4378 6762 w
(not) 4589 6762 w
(exist) 4746 6762 w
(or) 4954 6762 w
(when) 720 6872 w
(a) 970 6872 w
(prerequisite) 1043 6872 w
(has) 1550 6872 w
(been) 1713 6872 w
(modified) 1929 6872 w
(more) 2321 6872 w
(recently.) 2557 6872 w
(When) 2951 6872 w
(a) 3216 6872 w
(target) 3289 6872 w
(is) 3551 6872 w
(out) 3643 6872 w
(of) 3806 6872 w
(date,) 3915 6872 w
9 /Courier f
(mk) 4140 6872 w
9 /Palatino-Roman f
(executes) 4277 6872 w
(the) 4644 6872 w
(recipe) 4798 6872 w
(to) 720 6982 w
(bring) 824 6982 w
(it) 1062 6982 w
(up) 1142 6982 w
(to) 1274 6982 w
(date.) 1378 6982 w
(When) 1621 6982 w
(the) 1882 6982 w
(recipe) 2031 6982 w
(completes,) 2297 6982 w
(the) 2747 6982 w
(modification) 2896 6982 w
(time) 3429 6982 w
(of) 3631 6982 w
(the) 3735 6982 w
(target) 3884 6982 w
(is) 4141 6982 w
(checked) 4228 6982 w
(and) 4574 6982 w
(used) 4749 6982 w
(in) 4962 6982 w
(later) 720 7092 w
(dependency) 925 7092 w
(evaluations.) 1437 7092 w
(If) 1968 7092 w
(the) 2054 7092 w
(recipe) 2204 7092 w
(does) 2471 7092 w
(not) 2682 7092 w
(update) 2840 7092 w
(the) 3147 7092 w
(target,) 3298 7092 w
(evaluation) 3581 7092 w
(continues) 4029 7092 w
(with) 4440 7092 w
(the) 4649 7092 w
(out) 4800 7092 w
(of) 4960 7092 w
(date) 720 7202 w
(target.) 916 7202 w
cleartomark
showpage
saveobj restore
%%EndPage: 3 3
%%Page: 4 4
/saveobj save def
mark
4 pagesetup
9 /Palatino-Roman f
(\255 4 \255) 2804 470 w
(A) 970 830 w
(prerequisite) 1076 830 w
(of) 1591 830 w
(one) 1707 830 w
(rule) 1888 830 w
(may) 2084 830 w
(be) 2295 830 w
(the) 2425 830 w
(target) 2587 830 w
(of) 2858 830 w
(another.) 2975 830 w
(When) 3366 830 w
(this) 3640 830 w
(happens,) 3823 830 w
(the) 4221 830 w
(rules) 4383 830 w
(cascade) 4617 830 w
(to) 4960 830 w
(define) 720 940 w
(a) 997 940 w
(multi\255step) 1070 940 w
(procedure.) 1508 940 w
(For) 1993 940 w
(example,) 2157 940 w
(an) 2545 940 w
(executable) 2670 940 w
(target) 3119 940 w
(depends) 3381 940 w
(on) 3749 940 w
(prerequisite) 3879 940 w
(object) 4386 940 w
(files,) 4647 940 w
(each) 4860 940 w
(of) 720 1050 w
(which) 832 1050 w
(is) 1109 1050 w
(a) 1205 1050 w
(target) 1282 1050 w
(in) 1548 1050 w
(a) 1658 1050 w
(rule) 1735 1050 w
(with) 1926 1050 w
(a) 2141 1050 w
(C) 2218 1050 w
(source) 2314 1050 w
(file) 2607 1050 w
(as) 2764 1050 w
(the) 2879 1050 w
(prerequisite.) 3036 1050 w
9 /Courier f
(Mk) 3593 1050 w
9 /Palatino-Roman f
(follows) 3733 1050 w
(a) 4060 1050 w
(chain) 4137 1050 w
(of) 4384 1050 w
(dependencies) 4496 1050 w
(until) 720 1160 w
(it) 936 1160 w
(encounters) 1020 1160 w
(a) 1486 1160 w
(prerequisite) 1558 1160 w
(that) 2064 1160 w
(is) 2248 1160 w
(not) 2339 1160 w
(a) 2498 1160 w
(target) 2570 1160 w
(of) 2831 1160 w
(another) 2938 1160 w
(rule) 3273 1160 w
(or) 3459 1160 w
(it) 3572 1160 w
(finds) 3655 1160 w
(a) 3883 1160 w
(target) 3955 1160 w
(that) 4216 1160 w
(is) 4400 1160 w
(up) 4491 1160 w
(to) 4626 1160 w
(date.) 4733 1160 w
(It) 4979 1160 w
(then) 720 1270 w
(executes) 920 1270 w
(the) 1281 1270 w
(recipes) 1429 1270 w
(in) 1732 1270 w
(reverse) 1833 1270 w
(order) 2146 1270 w
(to) 2389 1270 w
(produce) 2492 1270 w
(the) 2847 1270 w
(desired) 2995 1270 w
(target.) 3314 1270 w
(The) 970 1416 w
(rule) 1148 1416 w
(header) 1335 1416 w
(is) 1637 1416 w
(evaluated) 1729 1416 w
(when) 2149 1416 w
(the) 2399 1416 w
(rule) 2552 1416 w
(is) 2739 1416 w
(read.) 2831 1416 w
(Variables) 3084 1416 w
(are) 3486 1416 w
(replaced) 3638 1416 w
(by) 4009 1416 w
(their) 4138 1416 w
(values,) 4354 1416 w
(namelists) 4663 1416 w
(are) 720 1526 w
(generated,) 867 1526 w
(and) 1310 1526 w
(commands) 1485 1526 w
(are) 1946 1526 w
(replaced) 2093 1526 w
(by) 2458 1526 w
(their) 2581 1526 w
(output) 2791 1526 w
(at) 3086 1526 w
(this) 3184 1526 w
(time.) 3353 1526 w
(Most) 970 1672 w
(attributes) 1202 1672 w
(modify) 1612 1672 w
9 /Courier f
(mk) 1930 1672 w
9 /Palatino-Roman f
(') 2038 1672 w
9 /Courier f
(s) 2063 1672 w
9 /Palatino-Roman f
(evaluation) 2145 1672 w
(of) 2595 1672 w
(a) 2703 1672 w
(rule.) 2776 1672 w
(An) 3009 1672 w
(attribute) 3159 1672 w
(is) 3531 1672 w
(usually) 3623 1672 w
(a) 3944 1672 w
(single) 4017 1672 w
(letter) 4280 1672 w
(but) 4516 1672 w
(some) 4678 1672 w
(are) 4916 1672 w
(more) 720 1782 w
(complicated.) 951 1782 w
(This) 1508 1782 w
(paper) 1702 1782 w
(only) 1957 1782 w
(discusses) 2158 1782 w
(commonly) 2551 1782 w
(used) 3000 1782 w
(attributes;) 3213 1782 w
(see) 3641 1782 w
9 /Palatino-Italic f
(mk) 3788 1782 w
9 /Palatino-Roman f
(\(1\)) 3905 1782 w
(for) 4033 1782 w
(a) 4172 1782 w
(complete) 4240 1782 w
(list.) 4628 1782 w
(The) 970 1928 w
9 /Courier f
(V) 1143 1928 w
9 /Palatino-Roman f
(attribute) 1220 1928 w
(identifies) 1587 1928 w
(a) 1979 1928 w
9 /Palatino-Italic f
(virtual) 2047 1928 w
9 /Palatino-Roman f
(target;) 2327 1928 w
(that) 2607 1928 w
(is,) 2787 1928 w
(a) 2897 1928 w
(target) 2965 1928 w
(that) 3222 1928 w
(is) 3402 1928 w
(not) 3489 1928 w
(a) 3644 1928 w
(file.) 3712 1928 w
(For) 3906 1928 w
(example,) 4065 1928 w
8 /Courier f
(clean:V:) 1008 2088 w
(rm *.$O $O.out) 1200 2188 w
9 /Palatino-Roman f
(removes) 720 2358 w
(executables) 1086 2358 w
(and) 1571 2358 w
(compiler) 1750 2358 w
(intermediate) 2131 2358 w
(files.) 2666 2358 w
(The) 2902 2358 w
(target) 3079 2358 w
(is) 3340 2358 w
(virtual) 3431 2358 w
(because) 3726 2358 w
(it) 4066 2358 w
(does) 4149 2358 w
(not) 4362 2358 w
(refer) 4521 2358 w
(to) 4736 2358 w
(a) 4843 2358 w
(file) 4915 2358 w
(named) 720 2468 w
9 /Courier f
(clean) 1021 2468 w
9 /Palatino-Roman f
(.) 1291 2468 w
(Without) 1364 2468 w
(the) 1723 2468 w
(attribute,) 1875 2468 w
(the) 2269 2468 w
(recipe) 2421 2468 w
(would) 2690 2468 w
(not) 2977 2468 w
(be) 3136 2468 w
(executed) 3255 2468 w
(if) 3636 2468 w
(a) 3718 2468 w
(file) 3789 2468 w
(named) 3940 2468 w
9 /Courier f
(clean) 4240 2468 w
9 /Palatino-Roman f
(existed.) 4536 2468 w
(The) 4890 2468 w
9 /Courier f
(Q) 720 2578 w
9 /Palatino-Roman f
(silences) 805 2578 w
(the) 1142 2578 w
(default) 1298 2578 w
(printing) 1612 2578 w
(of) 1969 2578 w
(a) 2080 2578 w
(recipe) 2157 2578 w
(before) 2431 2578 w
(it) 2715 2578 w
(is) 2803 2578 w
(executed.) 2899 2578 w
(It) 3332 2578 w
(is) 3425 2578 w
(useful) 3521 2578 w
(when) 3798 2578 w
(the) 4052 2578 w
(output) 4209 2578 w
(of) 4513 2578 w
(a) 4625 2578 w
(recipe) 4702 2578 w
(is) 4976 2578 w
(similar) 720 2688 w
(to) 1019 2688 w
(the) 1122 2688 w
(recipe:) 1270 2688 w
8 /Courier f
(default:QV:) 1008 2848 w
(echo 'No default target; use mk all or mk install') 1200 2948 w
9 /Palatino-Roman f
(A) 970 3118 w
(recipe) 1071 3118 w
(is) 1344 3118 w
(an) 1439 3118 w
9 /Courier f
(rc) 1567 3118 w
9 /Palatino-Roman f
(script.) 1706 3118 w
(The) 2008 3118 w
(recipe) 2190 3118 w
(is) 2464 3118 w
(optional;) 2560 3118 w
(when) 2948 3118 w
(it) 3202 3118 w
(is) 3290 3118 w
(missing,) 3386 3118 w
(the) 3750 3118 w
(rule) 3907 3118 w
(is) 4098 3118 w
(handled) 4194 3118 w
(specially,) 4554 3118 w
(as) 4957 3118 w
(described) 720 3228 w
(later.) 1143 3228 w
(Unlike) 1406 3228 w
9 /Courier f
(make) 1710 3228 w
9 /Palatino-Roman f
(,) 1926 3228 w
9 /Courier f
(mk) 1986 3228 w
9 /Palatino-Roman f
(executes) 2131 3228 w
(recipes) 2506 3228 w
(without) 2822 3228 w
(interpretation.) 3175 3228 w
(After) 3810 3228 w
(stripping) 4055 3228 w
(the) 4457 3228 w
(first) 4618 3228 w
(white) 4814 3228 w
(space) 720 3338 w
(character) 968 3338 w
(from) 1363 3338 w
(each) 1586 3338 w
(line) 1794 3338 w
(it) 1969 3338 w
(passes) 2053 3338 w
(the) 2337 3338 w
(entire) 2490 3338 w
(recipe) 2748 3338 w
(to) 3019 3338 w
9 /Courier f
(rc) 3128 3338 w
9 /Palatino-Roman f
(on) 3265 3338 w
(standard) 3396 3338 w
(input.) 3781 3338 w
(Since) 4072 3338 w
9 /Courier f
(mk) 4310 3338 w
9 /Palatino-Roman f
(does) 4447 3338 w
(not) 4662 3338 w
(inter\255) 4823 3338 w
(pret) 720 3448 w
(a) 907 3448 w
(recipe,) 976 3448 w
(escape) 1264 3448 w
(conventions) 1550 3448 w
(are) 2057 3448 w
(exactly) 2204 3448 w
(those) 2508 3448 w
(of) 2744 3448 w
9 /Courier f
(rc) 2847 3448 w
9 /Palatino-Roman f
(.) 2955 3448 w
(Scripts) 3024 3448 w
(for) 3319 3448 w
9 /Courier f
(awk) 3458 3448 w
9 /Palatino-Roman f
(and) 3643 3448 w
9 /Courier f
(sed) 3818 3448 w
9 /Palatino-Roman f
(commands) 4003 3448 w
(can) 4464 3448 w
(be) 4624 3448 w
(embed\255) 4740 3448 w
(ded) 720 3558 w
(just) 900 3558 w
(as) 1070 3558 w
(they) 1180 3558 w
(would) 1382 3558 w
(be) 1669 3558 w
(specified) 1789 3558 w
(from) 2172 3558 w
(the) 2395 3558 w
(command) 2548 3558 w
(line.) 2976 3558 w
9 /Courier f
(Mk) 3197 3558 w
9 /Palatino-Roman f
(invokes) 3333 3558 w
9 /Courier f
(rc) 3671 3558 w
9 /Palatino-Roman f
(with) 3807 3558 w
(the) 4018 3558 w
9 /Courier f
(\255e) 4171 3558 w
9 /Palatino-Roman f
(flag,) 4307 3558 w
(which) 4509 3558 w
(causes) 4782 3558 w
9 /Courier f
(rc) 720 3668 w
9 /Palatino-Roman f
(to) 854 3668 w
(stop) 960 3668 w
(if) 1158 3668 w
(any) 1240 3668 w
(command) 1413 3668 w
(in) 1839 3668 w
(the) 1943 3668 w
(recipe) 2094 3668 w
(exits) 2362 3668 w
(with) 2571 3668 w
(a) 2779 3668 w
(non\255zero) 2849 3668 w
(status;) 3232 3668 w
(the) 3515 3668 w
9 /Courier f
(E) 3665 3668 w
9 /Palatino-Roman f
(attribute) 3744 3668 w
(overrides) 4113 3668 w
(this) 4516 3668 w
(behavior) 4687 3668 w
(and) 720 3778 w
(allows) 896 3778 w
9 /Courier f
(rc) 1180 3778 w
9 /Palatino-Roman f
(to) 1312 3778 w
(continue) 1416 3778 w
(executing) 1787 3778 w
(in) 2196 3778 w
(the) 2298 3778 w
(face) 2447 3778 w
(of) 2629 3778 w
(errors.) 2733 3778 w
(Before) 3042 3778 w
(a) 3323 3778 w
(recipe) 3392 3778 w
(is) 3658 3778 w
(executed,) 3746 3778 w
(variables) 4148 3778 w
(are) 4533 3778 w
(exported) 4682 3778 w
(to) 720 3888 w
(the) 829 3888 w
(environment) 983 3888 w
(where) 1526 3888 w
9 /Courier f
(rc) 1804 3888 w
9 /Palatino-Roman f
(can) 1941 3888 w
(see) 2107 3888 w
(them.) 2260 3888 w
(Recipe) 2539 3888 w
(commands) 2834 3888 w
(may) 3301 3888 w
(not) 3504 3888 w
(read) 3665 3888 w
(from) 3873 3888 w
(standard) 4097 3888 w
(input) 4482 3888 w
(because) 4727 3888 w
9 /Courier f
(mk) 720 3998 w
9 /Palatino-Roman f
(uses) 851 3998 w
(it) 1047 3998 w
(internally.) 1126 3998 w
(References) 970 4144 w
(to) 1429 4144 w
(a) 1540 4144 w
(variable) 1616 4144 w
(can) 1969 4144 w
(yield) 2137 4144 w
(different) 2368 4144 w
(values) 2745 4144 w
(depending) 3034 4144 w
(on) 3496 4144 w
(the) 3630 4144 w
(location) 3787 4144 w
(of) 4138 4144 w
(the) 4250 4144 w
(reference) 4407 4144 w
(in) 4805 4144 w
(the) 4915 4144 w
9 /Courier f
(mkfile) 720 4254 w
9 /Palatino-Roman f
(.) 1044 4254 w
9 /Courier f
(Mk) 1120 4254 w
9 /Palatino-Roman f
(resolves) 1258 4254 w
(variable) 1612 4254 w
(references) 1963 4254 w
(in) 2396 4254 w
(assignment) 2503 4254 w
(statements) 2985 4254 w
(and) 3442 4254 w
(rule) 3623 4254 w
(headers) 3811 4254 w
(when) 4152 4254 w
(the) 4403 4254 w
(statement) 4557 4254 w
(is) 4976 4254 w
(read.) 720 4364 w
(Variable) 971 4364 w
(references) 1333 4364 w
(in) 1763 4364 w
(recipes) 1867 4364 w
(are) 2173 4364 w
(evaluated) 2323 4364 w
(by) 2741 4364 w
9 /Courier f
(rc) 2867 4364 w
9 /Palatino-Roman f
(when) 3001 4364 w
(the) 3249 4364 w
(recipe) 3401 4364 w
(is) 3670 4364 w
(executed;) 3761 4364 w
(this) 4166 4364 w
(happens) 4339 4364 w
(after) 4704 4364 w
(the) 4915 4364 w
(entire) 720 4474 w
9 /Courier f
(mkfile) 981 4474 w
9 /Palatino-Roman f
(has) 1336 4474 w
(been) 1502 4474 w
(read.) 1720 4474 w
(The) 1975 4474 w
(value) 2155 4474 w
(of) 2404 4474 w
(a) 2514 4474 w
(variable) 2589 4474 w
(in) 2941 4474 w
(a) 3049 4474 w
(recipe) 3124 4474 w
(is) 3396 4474 w
(the) 3490 4474 w
(last) 3645 4474 w
(value) 3814 4474 w
(assigned) 4063 4474 w
(in) 4440 4474 w
(the) 4548 4474 w
(file.) 4703 4474 w
(For) 4904 4474 w
(example,) 720 4584 w
8 /Courier f
(STRING=all) 1008 4744 w
(all:VQ:) 1008 4944 w
(echo $STRING) 1200 5044 w
(STRING=none) 1008 5144 w
9 /Palatino-Roman f
(produces) 720 5314 w
(the) 1119 5314 w
(message) 1273 5314 w
9 /Courier f
(none) 1638 5314 w
9 /Palatino-Roman f
(.) 1854 5314 w
(A) 1929 5314 w
(variable) 2028 5314 w
(assignment) 2379 5314 w
(in) 2861 5314 w
(a) 2968 5314 w
(recipe) 3043 5314 w
(does) 3315 5314 w
(not) 3531 5314 w
(affect) 3693 5314 w
(the) 3941 5314 w
(value) 4096 5314 w
(of) 4345 5314 w
(the) 4455 5314 w
(variable) 4610 5314 w
(in) 4962 5314 w
(the) 720 5424 w
9 /Courier f
(mkfile) 878 5424 w
9 /Palatino-Roman f
(for) 1235 5424 w
(two) 1384 5424 w
(reasons.) 1572 5424 w
(First,) 1953 5424 w
9 /Courier f
(mk) 2188 5424 w
9 /Palatino-Roman f
(does) 2328 5424 w
(not) 2546 5424 w
(import) 2710 5424 w
(values) 3017 5424 w
(from) 3306 5424 w
(the) 3533 5424 w
(environment) 3690 5424 w
(when) 4236 5424 w
(a) 4490 5424 w
(recipe) 4567 5424 w
(com\255) 4841 5424 w
(pletes;) 720 5534 w
(one) 1003 5534 w
(recipe) 1174 5534 w
(cannot) 1442 5534 w
(pass) 1737 5534 w
(a) 1938 5534 w
(value) 2009 5534 w
(through) 2254 5534 w
(the) 2604 5534 w
(environment) 2755 5534 w
(to) 3295 5534 w
(another) 3401 5534 w
(recipe.) 3735 5534 w
(Second,) 4050 5534 w
(no) 4388 5534 w
(recipe) 4517 5534 w
(is) 4786 5534 w
(exe\255) 4877 5534 w
(cuted) 720 5644 w
(until) 979 5644 w
9 /Courier f
(mk) 1204 5644 w
9 /Palatino-Roman f
(has) 1349 5644 w
(completed) 1521 5644 w
(its) 1978 5644 w
(evaluation,) 2109 5644 w
(so) 2591 5644 w
(even) 2716 5644 w
(if) 2942 5644 w
(a) 3035 5644 w
(variable) 3117 5644 w
(were) 3476 5644 w
(changed,) 3709 5644 w
(it) 4105 5644 w
(would) 4197 5644 w
(not) 4493 5644 w
(affect) 4661 5644 w
(the) 4915 5644 w
(dependency) 720 5754 w
(evaluation.) 1230 5754 w
9 /Palatino-Bold f
(6.) 720 5975 w
(Metarules) 834 5975 w
9 /Palatino-Roman f
(A) 970 6121 w
9 /Palatino-Italic f
(metarule) 1065 6121 w
9 /Palatino-Roman f
(is) 1417 6121 w
(a) 1506 6121 w
(rule) 1576 6121 w
(based) 1760 6121 w
(on) 2016 6121 w
(a) 2143 6121 w
(pattern.) 2213 6121 w
(The) 2574 6121 w
(pattern) 2750 6121 w
(selects) 3066 6121 w
(a) 3350 6121 w
(class) 3421 6121 w
(of) 3634 6121 w
(target) 3740 6121 w
(and) 4000 6121 w
(identifies) 4178 6121 w
(related) 4573 6121 w
(pre\255) 4877 6121 w
(requisites.) 720 6231 w
9 /Courier f
(Mk) 1181 6231 w
9 /Palatino-Roman f
(metarules) 1320 6231 w
(may) 1745 6231 w
(select) 1950 6231 w
(targets) 2201 6231 w
(and) 2504 6231 w
(prerequisites) 2687 6231 w
(based) 3235 6231 w
(on) 3497 6231 w
(any) 3630 6231 w
(criterion) 3808 6231 w
(that) 4177 6231 w
(can) 4364 6231 w
(be) 4531 6231 w
(described) 4654 6231 w
(by) 720 6341 w
(a) 843 6341 w
(pattern,) 911 6341 w
(not) 1247 6341 w
(just) 1402 6341 w
(the) 1568 6341 w
(suffix) 1716 6341 w
(transformations) 1964 6341 w
(associated) 2624 6341 w
(with) 3057 6341 w
(program) 3263 6341 w
(construction.) 3636 6341 w
9 /Courier f
(Mk) 970 6487 w
9 /Palatino-Roman f
(has) 1101 6487 w
(two) 1259 6487 w
(types) 1437 6487 w
(of) 1676 6487 w
(patterns:) 1780 6487 w
9 /Palatino-Italic f
(intrinsic) 2155 6487 w
9 /Palatino-Roman f
(patterns) 2498 6487 w
(or) 2850 6487 w
(regular) 2960 6487 w
(expressions) 3274 6487 w
(conforming) 3763 6487 w
(to) 4252 6487 w
(the) 4356 6487 w
(syntax) 4505 6487 w
(of) 4791 6487 w
9 /Palatino-Italic f
(reg\255) 4895 6487 w
(exp) 720 6597 w
9 /Palatino-Roman f
(\(6\).) 852 6597 w
(The) 1051 6597 w
(intrinsic) 1248 6597 w
(patterns) 1621 6597 w
(are) 1996 6597 w
(shorthand) 2167 6597 w
(for) 2624 6597 w
(common) 2787 6597 w
(regular) 3184 6597 w
(expressions.) 3521 6597 w
(The) 4079 6597 w
(intrinsic) 4276 6597 w
(pattern) 4649 6597 w
9 /Courier f
(%) 4986 6597 w
9 /Palatino-Roman f
(matches) 720 6707 w
(one) 1077 6707 w
(or) 1252 6707 w
(more) 1368 6707 w
(of) 1607 6707 w
(anything;) 1718 6707 w
(it) 2129 6707 w
(is) 2216 6707 w
(equivalent) 2311 6707 w
(to) 2762 6707 w
(the) 2873 6707 w
(regular) 3029 6707 w
(expression) 3350 6707 w
9 /Courier f
(`.+') 3808 6707 w
9 /Palatino-Roman f
(.) 4024 6707 w
(The) 4101 6707 w
(other) 4282 6707 w
(intrinsic) 4524 6707 w
(pat\255) 4881 6707 w
(tern,) 720 6817 w
9 /Courier f
(&) 934 6817 w
9 /Palatino-Roman f
(,) 988 6817 w
(matches) 1041 6817 w
(one) 1398 6817 w
(or) 1573 6817 w
(more) 1689 6817 w
(of) 1927 6817 w
(any) 2037 6817 w
(characters) 2214 6817 w
(except) 2649 6817 w
9 /Courier f
(`/') 2936 6817 w
9 /Palatino-Roman f
(and) 3128 6817 w
9 /Courier f
(`.') 3310 6817 w
9 /Palatino-Roman f
(.) 3472 6817 w
(It) 3548 6817 w
(matches) 3639 6817 w
(a) 3996 6817 w
(portion) 4071 6817 w
(of) 4399 6817 w
(a) 4509 6817 w
(path) 4584 6817 w
(and) 4795 6817 w
(is) 4976 6817 w
(equivalent) 720 6927 w
(to) 1168 6927 w
(the) 1276 6927 w
(regular) 1429 6927 w
(expression) 1747 6927 w
9 /Courier f
(`[^./]+') 2202 6927 w
9 /Palatino-Roman f
(.) 2634 6927 w
(An) 2708 6927 w
(intrinsic) 2858 6927 w
(pattern) 3213 6927 w
(in) 3532 6927 w
(a) 3639 6927 w
(prerequisite) 3713 6927 w
(references) 4221 6927 w
(the) 4654 6927 w
(string) 4808 6927 w
(matched) 720 7037 w
(by) 1087 7037 w
(the) 1210 7037 w
(same) 1358 7037 w
(intrinsic) 1586 7037 w
(pattern) 1935 7037 w
(in) 2248 7037 w
(the) 2349 7037 w
(target.) 2497 7037 w
(For) 2800 7037 w
(example,) 2959 7037 w
(the) 3342 7037 w
(rule) 3490 7037 w
8 /Courier f
(%.v:) 1200 7197 w
(%.c) 1584 7197 w
cleartomark
showpage
saveobj restore
%%EndPage: 4 4
%%Page: 5 5
/saveobj save def
mark
5 pagesetup
9 /Palatino-Roman f
(\255 5 \255) 2804 470 w
(says) 720 830 w
(that) 915 830 w
(a) 1096 830 w
(file) 1165 830 w
(ending) 1314 830 w
(in) 1616 830 w
9 /Courier f
(.v) 1718 830 w
9 /Palatino-Roman f
(depends) 1850 830 w
(on) 2214 830 w
(a) 2340 830 w
(file) 2409 830 w
(of) 2558 830 w
(the) 2662 830 w
(same) 2811 830 w
(name) 3040 830 w
(with) 3283 830 w
(a) 3490 830 w
9 /Courier f
(.c) 3559 830 w
9 /Palatino-Roman f
(suffix:) 3691 830 w
9 /Courier f
(foo.v) 3963 830 w
9 /Palatino-Roman f
(depends) 4257 830 w
(on) 4621 830 w
9 /Courier f
(foo.c) 4747 830 w
9 /Palatino-Roman f
(,) 5017 830 w
9 /Courier f
(bar.v) 720 940 w
9 /Palatino-Roman f
(depends) 1015 940 w
(on) 1379 940 w
9 /Courier f
(bar.c) 1505 940 w
9 /Palatino-Roman f
(,) 1775 940 w
(and) 1822 940 w
(so) 1998 940 w
(on.) 2110 940 w
(The) 2282 940 w
(string) 2456 940 w
(matched) 2712 940 w
(by) 3080 940 w
(an) 3204 940 w
(intrinsic) 3325 940 w
(pattern) 3675 940 w
(in) 3989 940 w
(the) 4091 940 w
(target) 4240 940 w
(is) 4498 940 w
(supplied) 4586 940 w
(to) 4960 940 w
(the) 720 1050 w
(recipe) 868 1050 w
(in) 1133 1050 w
(the) 1234 1050 w
(variable) 1382 1050 w
9 /Courier f
($stem) 1727 1050 w
9 /Palatino-Roman f
(.) 1997 1050 w
(Thus) 2066 1050 w
(the) 2288 1050 w
(rule) 2436 1050 w
8 /Courier f
(%.$O:) 1008 1218 w
(%.c) 1392 1218 w
($CC $CFLAGS $stem.c) 1200 1318 w
9 /Palatino-Roman f
(creates) 720 1496 w
(an) 1024 1496 w
(object) 1150 1496 w
(file) 1413 1496 w
(for) 1568 1496 w
(the) 1714 1496 w
(target) 1869 1496 w
(architecture) 2133 1496 w
(from) 2638 1496 w
(a) 2863 1496 w
(similarly) 2938 1496 w
(named) 3320 1496 w
(C) 3624 1496 w
(source) 3718 1496 w
(file.) 4009 1496 w
(If) 4210 1496 w
(several) 4301 1496 w
(object) 4613 1496 w
(files) 4877 1496 w
(are) 720 1606 w
(out) 872 1606 w
(of) 1034 1606 w
(date,) 1142 1606 w
(the) 1366 1606 w
(rule) 1519 1606 w
(is) 1706 1606 w
(applied) 1798 1606 w
(repeatedly) 2129 1606 w
(and) 2582 1606 w
9 /Courier f
($stem) 2762 1606 w
9 /Palatino-Roman f
(refers) 3060 1606 w
(to) 3314 1606 w
(each) 3422 1606 w
(file) 3630 1606 w
(in) 3782 1606 w
(turn.) 3887 1606 w
(Since) 4132 1606 w
(there) 4368 1606 w
(is) 4599 1606 w
(only) 4690 1606 w
(one) 4895 1606 w
9 /Courier f
(stem) 720 1716 w
9 /Palatino-Roman f
(variable,) 959 1716 w
(there) 1327 1716 w
(can) 1554 1716 w
(only) 1714 1716 w
(be) 1915 1716 w
(one) 2031 1716 w
9 /Courier f
(%) 2199 1716 w
9 /Palatino-Roman f
(or) 2276 1716 w
9 /Courier f
(&) 2385 1716 w
9 /Palatino-Roman f
(pattern) 2462 1716 w
(in) 2775 1716 w
(a) 2876 1716 w
(target;) 2944 1716 w
(the) 3224 1716 w
(pattern) 3372 1716 w
9 /Courier f
(%\255%.c) 3685 1716 w
9 /Palatino-Roman f
(is) 3978 1716 w
(illegal.) 4065 1716 w
(Metarules) 970 1867 w
(simplify) 1394 1867 w
(the) 1746 1867 w
9 /Courier f
(mkfile) 1894 1867 w
9 /Palatino-Roman f
(for) 2241 1867 w
(building) 2380 1867 w
(programs) 2742 1867 w
9 /Courier f
(f1) 3153 1867 w
9 /Palatino-Roman f
(and) 3284 1867 w
9 /Courier f
(f2) 3459 1867 w
9 /Palatino-Roman f
(:) 3567 1867 w
8 /Courier f
(</$objtype/mkfile) 1008 2035 w
(CFLAGS=\255w) 1008 2135 w
(ALL=f1 f2) 1008 2235 w
(all:V:) 1008 2435 w
($ALL) 1392 2435 w
(%:) 1008 2635 w
(%.$O) 1200 2635 w
($LD \255o $target $prereq) 1200 2735 w
(%.$O:) 1008 2835 w
(%.c) 1392 2835 w
($CC $CFLAGS $stem.c) 1200 2935 w
(clean:V:) 1008 3035 w
(rm \255f $ALL *.[$OS]) 1200 3135 w
9 /Palatino-Roman f
(\(The) 720 3313 w
(variable) 924 3313 w
9 /Courier f
($OS) 1270 3313 w
9 /Palatino-Roman f
(is) 1456 3313 w
(a) 1544 3313 w
(list) 1613 3313 w
(of) 1757 3313 w
(code) 1861 3313 w
(characters) 2073 3313 w
(for) 2502 3313 w
(all) 2642 3313 w
(architectures.\)) 2763 3313 w
(Here,) 3376 3313 w
(metarules) 3620 3313 w
(specify) 4038 3313 w
(compile) 4344 3313 w
(and) 4687 3313 w
(load) 4864 3313 w
(steps) 720 3423 w
(for) 955 3423 w
(all) 1103 3423 w
(files.) 1231 3423 w
(The) 1471 3423 w
(loader) 1652 3423 w
(rule) 1938 3423 w
(relies) 2128 3423 w
(on) 2371 3423 w
(two) 2504 3423 w
(internal) 2690 3423 w
(variables) 3031 3423 w
(set) 3422 3423 w
(by) 3564 3423 w
9 /Courier f
(mk) 3695 3423 w
9 /Palatino-Roman f
(during) 3834 3423 w
(evaluation) 4138 3423 w
(of) 4591 3423 w
(the) 4702 3423 w
(rule:) 4858 3423 w
9 /Courier f
($target) 720 3533 w
9 /Palatino-Roman f
(is) 1142 3533 w
(the) 1250 3533 w
(name) 1419 3533 w
(of) 1682 3533 w
(the) 1806 3533 w
(target) 1975 3533 w
(and) 2253 3533 w
9 /Courier f
($prereq) 2449 3533 w
9 /Palatino-Roman f
(the) 2872 3533 w
(name) 3042 3533 w
(of) 3306 3533 w
(all) 3431 3533 w
(prerequisites.) 3573 3533 w
(Metarules) 4181 3533 w
(allow) 4627 3533 w
(this) 4894 3533 w
9 /Courier f
(mkfile) 720 3643 w
9 /Palatino-Roman f
(to) 1067 3643 w
(be) 1170 3643 w
(easily) 1286 3643 w
(extended;) 1537 3643 w
(a) 1951 3643 w
(new) 2019 3643 w
(program) 2212 3643 w
(is) 2585 3643 w
(supported) 2672 3643 w
(by) 3109 3643 w
(adding) 3232 3643 w
(its) 3538 3643 w
(name) 3655 3643 w
(to) 3897 3643 w
(the) 4000 3643 w
(third) 4148 3643 w
(line.) 4370 3643 w
(A) 970 3794 w
(regular) 1070 3794 w
(expression) 1390 3794 w
(metarule) 1847 3794 w
(must) 2233 3794 w
(have) 2464 3794 w
(an) 2685 3794 w
9 /Courier f
(R) 2812 3794 w
9 /Palatino-Roman f
(attribute.) 2896 3794 w
(Prerequisites) 3316 3794 w
(may) 3863 3794 w
(reference) 4067 3794 w
(matching) 4463 3794 w
(sub\255) 4868 3794 w
(strings) 720 3904 w
(in) 1019 3904 w
(the) 1126 3904 w
(target) 1280 3904 w
(using) 1543 3904 w
(the) 1792 3904 w
(form) 1946 3904 w
9 /Courier f
(\\) 2170 3904 w
9 /Palatino-Italic f
(n) 2224 3904 w
9 /Palatino-Roman f
(where) 2302 3904 w
9 /Palatino-Italic f
(n) 2579 3904 w
9 /Palatino-Roman f
(is) 2664 3904 w
(a) 2756 3904 w
(digit) 2829 3904 w
(from) 3044 3904 w
(1) 3267 3904 w
(to) 3340 3904 w
(9) 3448 3904 w
(specifying) 3521 3904 w
(the) 3958 3904 w
9 /Palatino-Italic f
(n) 4111 3904 w
9 /Palatino-Roman f
(th) 4168 3904 w
(parenthesized) 4278 3904 w
(sub\255) 4868 3904 w
(expression.) 720 4014 w
(In) 1219 4014 w
(a) 1328 4014 w
(recipe,) 1399 4014 w
9 /Courier f
($stem) 1690 4014 w
9 /Palatino-Italic f
(n) 1960 4014 w
9 /Palatino-Roman f
(is) 2036 4014 w
(the) 2126 4014 w
(equivalent) 2277 4014 w
(reference.) 2723 4014 w
(For) 3161 4014 w
(example,) 3323 4014 w
(a) 3710 4014 w
(compile) 3782 4014 w
(rule) 4127 4014 w
(could) 4313 4014 w
(be) 4565 4014 w
(specified) 4685 4014 w
(using) 720 4124 w
(regular) 963 4124 w
(expressions:) 1276 4124 w
8 /Courier f
(\(.+\)\\.$O:R: \\1.c) 1008 4292 w
($CC $CFLAGS $stem1.c) 1200 4392 w
9 /Palatino-Roman f
(Here,) 720 4570 w
9 /Courier f
(\\1) 963 4570 w
9 /Palatino-Roman f
(and) 1094 4570 w
9 /Courier f
($stem1) 1269 4570 w
9 /Palatino-Roman f
(refer) 1616 4570 w
(to) 1827 4570 w
(the) 1930 4570 w
(name) 2079 4570 w
(of) 2322 4570 w
(the) 2426 4570 w
(target) 2575 4570 w
(object) 2833 4570 w
(file) 3091 4570 w
(without) 3240 4570 w
(the) 3581 4570 w
(suffix.) 3730 4570 w
(The) 4025 4570 w
(variable) 4199 4570 w
9 /Courier f
($stem) 4545 4570 w
9 /Palatino-Roman f
(asso\255) 4839 4570 w
(ciated) 720 4680 w
(with) 982 4680 w
(an) 1188 4680 w
(intrinsic) 1308 4680 w
(pattern) 1657 4680 w
(is) 1970 4680 w
(undefined) 2057 4680 w
(in) 2490 4680 w
(a) 2591 4680 w
(regular) 2659 4680 w
(expression) 2972 4680 w
(metarule.) 3422 4680 w
9 /Palatino-Bold f
(7.) 720 4915 w
(Archives) 834 4915 w
9 /Courier f
(Mk) 970 5066 w
9 /Palatino-Roman f
(provides) 1103 5066 w
(a) 1481 5066 w
(special) 1551 5066 w
(mechanism) 1848 5066 w
(for) 2327 5066 w
(maintaining) 2468 5066 w
(an) 2976 5066 w
(archive.) 3098 5066 w
(An) 3462 5066 w
(archive) 3609 5066 w
(member) 3927 5066 w
(is) 4283 5066 w
(referenced) 4373 5066 w
(using) 4820 5066 w
(the) 720 5176 w
(form) 872 5176 w
9 /Palatino-Italic f
(lib) 1094 5176 w
9 /Courier f
(\() 1185 5176 w
9 /Palatino-Italic f
(file) 1239 5176 w
9 /Courier f
(\)) 1349 5176 w
9 /Palatino-Roman f
(where) 1430 5176 w
9 /Palatino-Italic f
(lib) 1706 5176 w
9 /Palatino-Roman f
(is) 1831 5176 w
(the) 1922 5176 w
(name) 2074 5176 w
(of) 2320 5176 w
(the) 2426 5176 w
(archive) 2577 5176 w
(and) 2896 5176 w
9 /Palatino-Italic f
(file) 3074 5176 w
9 /Palatino-Roman f
(is) 3217 5176 w
(the) 3307 5176 w
(name) 3458 5176 w
(of) 3703 5176 w
(the) 3809 5176 w
(member.) 3960 5176 w
(Two) 4362 5176 w
(rules) 4568 5176 w
(define) 4791 5176 w
(the) 720 5286 w
(dependency) 868 5286 w
(between) 1378 5286 w
(an) 1737 5286 w
(object) 1857 5286 w
(file) 2114 5286 w
(and) 2262 5286 w
(its) 2437 5286 w
(membership) 2554 5286 w
(in) 3077 5286 w
(an) 3178 5286 w
(archive:) 3298 5286 w
8 /Courier f
($LIB\(foo.v\):N:) 1008 5454 w
(foo.v) 1776 5454 w
($LIB:) 1008 5554 w
($LIB\(foo.v\)) 1392 5554 w
(ar rv $LIB foo.v) 1200 5654 w
9 /Palatino-Roman f
(The) 720 5832 w
(first) 910 5832 w
(rule) 1110 5832 w
(establishes) 1309 5832 w
(a) 1778 5832 w
(dependency) 1863 5832 w
(between) 2390 5832 w
(the) 2766 5832 w
(archive) 2931 5832 w
(member) 3264 5832 w
(and) 3635 5832 w
(the) 3828 5832 w
(object) 3994 5832 w
(file.) 4269 5832 w
(Normally,) 4481 5832 w
9 /Courier f
(mk) 4932 5832 w
9 /Palatino-Roman f
(detects) 720 5942 w
(an) 1029 5942 w
(error) 1156 5942 w
(when) 1387 5942 w
(a) 1639 5942 w
(target) 1714 5942 w
(does) 1978 5942 w
(not) 2193 5942 w
(exist) 2354 5942 w
(and) 2567 5942 w
(the) 2748 5942 w
(rule) 2902 5942 w
(contains) 3090 5942 w
(no) 3452 5942 w
(recipe;) 3583 5942 w
(the) 3877 5942 w
9 /Courier f
(N) 4031 5942 w
9 /Palatino-Roman f
(attribute) 4114 5942 w
(overrides) 4487 5942 w
(this) 4894 5942 w
(behavior) 720 6052 w
(because) 1109 6052 w
(the) 1458 6052 w
(subsequent) 1619 6052 w
(rule) 2107 6052 w
(updates) 2302 6052 w
(the) 2657 6052 w
(member.) 2818 6052 w
(The) 3230 6052 w
(second) 3416 6052 w
(rule) 3730 6052 w
(establishes) 3925 6052 w
(the) 4391 6052 w
(dependency) 4553 6052 w
(between) 720 6162 w
(the) 1085 6162 w
(member) 1239 6162 w
(and) 1598 6162 w
(the) 1779 6162 w
(archive;) 1932 6162 w
(its) 2276 6162 w
(recipe) 2398 6162 w
(inserts) 2668 6162 w
(the) 2959 6162 w
(member) 3112 6162 w
(into) 3470 6162 w
(the) 3656 6162 w
(archive.) 3809 6162 w
(This) 4176 6162 w
(two\255step) 4375 6162 w
(specifi\255) 4753 6162 w
(cation) 720 6272 w
(allows) 988 6272 w
(the) 1273 6272 w
(archive) 1423 6272 w
(to) 1741 6272 w
(represent) 1846 6272 w
(the) 2246 6272 w
(state) 2396 6272 w
(of) 2607 6272 w
(its) 2712 6272 w
(members.) 2831 6272 w
(Other) 3270 6272 w
(rules) 3527 6272 w
(can) 3749 6272 w
(then) 3911 6272 w
(specify) 4113 6272 w
(the) 4419 6272 w
(archive) 4569 6272 w
(as) 4887 6272 w
(a) 4995 6272 w
(prerequisite) 720 6382 w
(instead) 1222 6382 w
(of) 1534 6382 w
(listing) 1637 6382 w
(each) 1908 6382 w
(member.) 2111 6382 w
(A) 970 6533 w
(metarule) 1063 6533 w
(generalizes) 1442 6533 w
(library) 1912 6533 w
(maintenance:) 2204 6533 w
8 /Courier f
(LIB=lib.a) 1008 6701 w
(OBJS=etoa.$O atoe.$O ebcdic.$O) 1008 6801 w
($LIB\(%\):N:) 1008 7001 w
(%) 1584 7001 w
($LIB:) 1008 7101 w
(${OBJS:%=$LIB\(%\)}) 1392 7101 w
(ar rv $LIB $OBJS) 1200 7201 w
cleartomark
showpage
saveobj restore
%%EndPage: 5 5
%%Page: 6 6
/saveobj save def
mark
6 pagesetup
9 /Palatino-Roman f
(\255 6 \255) 2804 470 w
(The) 720 830 w
(namelist) 896 830 w
(prerequisite) 1261 830 w
(of) 1766 830 w
(the) 1872 830 w
9 /Courier f
($LIB) 2023 830 w
9 /Palatino-Roman f
(target) 2265 830 w
(generates) 2525 830 w
(archive) 2931 830 w
(member) 3251 830 w
(names) 3608 830 w
(for) 3892 830 w
(each) 4035 830 w
(object) 4242 830 w
(file) 4503 830 w
(name;) 4655 830 w
(for) 4924 830 w
(example,) 720 940 w
9 /Courier f
(etoa.$O) 1121 940 w
9 /Palatino-Roman f
(becomes) 1540 940 w
9 /Courier f
(lib.a\(etoa.$O\)) 1924 940 w
9 /Palatino-Roman f
(.) 2680 940 w
(This) 2767 940 w
(formulation) 2978 940 w
(always) 3496 940 w
(updates) 3815 940 w
(all) 4174 940 w
(members.) 4311 940 w
(This) 4765 940 w
(is) 4976 940 w
(acceptable) 720 1050 w
(for) 1159 1050 w
(a) 1298 1050 w
(small) 1366 1050 w
(archive,) 1603 1050 w
(but) 1942 1050 w
(may) 2099 1050 w
(be) 2296 1050 w
(slow) 2412 1050 w
(for) 2624 1050 w
(a) 2763 1050 w
(big) 2831 1050 w
(one.) 2980 1050 w
(The) 3194 1050 w
(rule) 3367 1050 w
8 /Courier f
($LIB:) 1008 1215 w
(${OBJS:%=$LIB\(%\)}) 1392 1215 w
(ar rv $LIB `{membername $newprereq}) 1200 1315 w
9 /Palatino-Roman f
(only) 720 1490 w
(updates) 929 1490 w
(out) 1279 1490 w
(of) 1444 1490 w
(date) 1555 1490 w
(object) 1759 1490 w
(files.) 2024 1490 w
(The) 2264 1490 w
(internal) 2446 1490 w
(variable) 2788 1490 w
9 /Courier f
($newprereq) 3142 1490 w
9 /Palatino-Roman f
(contains) 3714 1490 w
(the) 4079 1490 w
(names) 4236 1490 w
(of) 4525 1490 w
(the) 4637 1490 w
(out) 4794 1490 w
(of) 4960 1490 w
(date) 720 1600 w
(prerequisites.) 918 1600 w
(The) 1506 1600 w
9 /Courier f
(rc) 1680 1600 w
9 /Palatino-Roman f
(script) 1812 1600 w
9 /Courier f
(membername) 2060 1600 w
9 /Palatino-Roman f
(transforms) 2624 1600 w
(an) 3082 1600 w
(archive) 3203 1600 w
(member) 3520 1600 w
(specification) 3874 1600 w
(into) 4398 1600 w
(a) 4580 1600 w
(file) 4649 1600 w
(name:) 4798 1600 w
(it) 720 1710 w
(translates) 799 1710 w
9 /Courier f
(lib.a\(etoa.$O\)) 1205 1710 w
9 /Palatino-Roman f
(into) 1984 1710 w
9 /Courier f
(etoa.$O) 2165 1710 w
9 /Palatino-Roman f
(.) 2543 1710 w
(The) 970 1859 w
9 /Courier f
(mkfile) 1143 1859 w
8 /Courier f
(</$objtype/mkfile) 1008 2024 w
(LIB=lib.a) 1008 2124 w
(OBJS=etoa.$O atoe.$O ebcdic.$O) 1008 2224 w
(prog:) 1008 2424 w
(main.$O $LIB) 1392 2424 w
($LD \255o $target $prereq) 1200 2524 w
($LIB\(%\):N:) 1008 2724 w
(%) 1584 2724 w
($LIB:) 1008 2824 w
(${OBJS:%=$LIB\(%\)}) 1392 2824 w
(ar rv $LIB $OBJS) 1200 2924 w
9 /Palatino-Roman f
(builds) 720 3099 w
(a) 992 3099 w
(program) 1060 3099 w
(by) 1433 3099 w
(loading) 1556 3099 w
(it) 1883 3099 w
(with) 1962 3099 w
(a) 2168 3099 w
(library.) 2236 3099 w
9 /Palatino-Bold f
(8.) 720 3329 w
(Evaluation) 834 3329 w
(algorithm) 1302 3329 w
9 /Palatino-Roman f
(For) 970 3478 w
(each) 1139 3478 w
(target) 1352 3478 w
(of) 1619 3478 w
(interest,) 1732 3478 w
9 /Courier f
(mk) 2086 3478 w
9 /Palatino-Roman f
(uses) 2227 3478 w
(the) 2434 3478 w
(rules) 2593 3478 w
(in) 2824 3478 w
(a) 2936 3478 w
9 /Courier f
(mkfile) 3015 3478 w
9 /Palatino-Roman f
(to) 3373 3478 w
(build) 3487 3478 w
(a) 3732 3478 w
(data) 3811 3478 w
(structure) 4020 3478 w
(called) 4415 3478 w
(a) 4684 3478 w
(depen\255) 4763 3478 w
(dency) 720 3588 w
(graph.) 991 3588 w
(The) 1305 3588 w
(nodes) 1486 3588 w
(of) 1755 3588 w
(the) 1865 3588 w
(graph) 2020 3588 w
(represent) 2287 3588 w
(targets) 2692 3588 w
(and) 2994 3588 w
(prerequisites;) 3176 3588 w
(a) 3746 3588 w
(directed) 3821 3588 w
(arc) 4179 3588 w
(from) 4330 3588 w
(one) 4555 3588 w
(node) 4730 3588 w
(to) 4960 3588 w
(another) 720 3698 w
(indicates) 1055 3698 w
(that) 1437 3698 w
(the) 1621 3698 w
(file) 1773 3698 w
(associated) 1925 3698 w
(with) 2362 3698 w
(the) 2572 3698 w
(first) 2724 3698 w
(node) 2911 3698 w
(depends) 3138 3698 w
(on) 3505 3698 w
(the) 3634 3698 w
(file) 3786 3698 w
(associated) 3938 3698 w
(with) 4375 3698 w
(the) 4586 3698 w
(second.) 4739 3698 w
(When) 720 3808 w
(the) 984 3808 w
9 /Courier f
(mkfile) 1136 3808 w
9 /Palatino-Roman f
(has) 1487 3808 w
(been) 1649 3808 w
(completely) 1864 3808 w
(read,) 2332 3808 w
(the) 2561 3808 w
(graph) 2713 3808 w
(is) 2977 3808 w
(analyzed.) 3068 3808 w
(In) 3501 3808 w
(the) 3610 3808 w
(first) 3761 3808 w
(step,) 3947 3808 w
(implied) 4161 3808 w
(dependencies) 4496 3808 w
(are) 720 3918 w
(resolved) 871 3918 w
(by) 1240 3918 w
(computing) 1367 3918 w
(the) 1829 3918 w
9 /Palatino-Italic f
(transitive) 1981 3918 w
(closure) 2358 3918 w
9 /Palatino-Roman f
(of) 2649 3918 w
(the) 2757 3918 w
(graph.) 2910 3918 w
(This) 3221 3918 w
(calculation) 3420 3918 w
(extends) 3882 3918 w
(the) 4218 3918 w
(graph) 4371 3918 w
(to) 4636 3918 w
(include) 4744 3918 w
(all) 720 4028 w
(targets) 843 4028 w
(that) 1141 4028 w
(are) 1324 4028 w
(potentially) 1473 4028 w
(derivable) 1930 4028 w
(from) 2330 4028 w
(the) 2550 4028 w
(rules) 2700 4028 w
(in) 2922 4028 w
(the) 3025 4028 w
9 /Courier f
(mkfile) 3175 4028 w
9 /Palatino-Roman f
(.) 3499 4028 w
(Next) 3570 4028 w
(the) 3790 4028 w
(graph) 3940 4028 w
(is) 4202 4028 w
(checked) 4291 4028 w
(for) 4639 4028 w
(cycles;) 4780 4028 w
9 /Courier f
(make) 720 4138 w
9 /Palatino-Roman f
(accepts) 962 4138 w
(cyclic) 1278 4138 w
(dependencies,) 1526 4138 w
(but) 2119 4138 w
9 /Courier f
(mk) 2279 4138 w
9 /Palatino-Roman f
(does) 2413 4138 w
(not) 2625 4138 w
(allow) 2783 4138 w
(them.) 3031 4138 w
(Subsequent) 3307 4138 w
(steps) 3795 4138 w
(prune) 4024 4138 w
(subgraphs) 4289 4138 w
(that) 4732 4138 w
(are) 4916 4138 w
(irrelevant) 720 4248 w
(for) 1143 4248 w
(producing) 1294 4248 w
(the) 1746 4248 w
(desired) 1905 4248 w
(target) 2235 4248 w
(and) 2503 4248 w
(verify) 2689 4248 w
(that) 2959 4248 w
(there) 3150 4248 w
(is) 3388 4248 w
(only) 3486 4248 w
(one) 3698 4248 w
(way) 3877 4248 w
(to) 4081 4248 w
(build) 4195 4248 w
(it.) 4440 4248 w
(The) 4576 4248 w
(recipes) 4760 4248 w
(associated) 720 4358 w
(with) 1160 4358 w
(the) 1373 4358 w
(nodes) 1529 4358 w
(on) 1798 4358 w
(the) 1931 4358 w
(longest) 2087 4358 w
(path) 2407 4358 w
(between) 2619 4358 w
(the) 2986 4358 w
(target) 3142 4358 w
(and) 3407 4358 w
(an) 3590 4358 w
(out) 3718 4358 w
(of) 3883 4358 w
(date) 3994 4358 w
(prerequisite) 4198 4358 w
(are) 4708 4358 w
(then) 4863 4358 w
(executed) 720 4468 w
(in) 1098 4468 w
(reverse) 1199 4468 w
(order.) 1512 4468 w
(The) 970 4617 w
(transitive) 1154 4617 w
(closure) 1566 4617 w
(calculation) 1888 4617 w
(is) 2357 4617 w
(sensitive) 2456 4617 w
(to) 2838 4617 w
(metarules;) 2953 4617 w
(the) 3405 4617 w
(patterns) 3565 4617 w
(often) 3928 4617 w
(select) 4168 4617 w
(many) 4423 4617 w
(potential) 4684 4617 w
(targets) 720 4727 w
(and) 1021 4727 w
(cause) 1202 4727 w
(the) 1451 4727 w
(graph) 1605 4727 w
(to) 1871 4727 w
(grow) 1980 4727 w
(rapidly.) 2220 4727 w
(Fortunately,) 2587 4727 w
(dependencies) 3105 4727 w
(associated) 3678 4727 w
(with) 4117 4727 w
(the) 4329 4727 w
(desired) 4482 4727 w
(target) 4806 4727 w
(usually) 720 4837 w
(form) 1036 4837 w
(a) 1254 4837 w
(small) 1322 4837 w
(part) 1559 4837 w
(of) 1747 4837 w
(the) 1850 4837 w
(graph,) 1998 4837 w
(so,) 2281 4837 w
(after) 2415 4837 w
(pruning,) 2622 4837 w
(analysis) 2992 4837 w
(is) 3335 4837 w
(tractable.) 3422 4837 w
(For) 3836 4837 w
(example,) 3995 4837 w
(the) 4378 4837 w
(rules) 4526 4837 w
8 /Courier f
(%:) 1008 5002 w
(x.%) 1200 5002 w
(recipe1) 1200 5102 w
(x.%:) 1008 5202 w
(%.k) 1392 5202 w
(recipe2) 1200 5302 w
(%.k:) 1008 5402 w
(%.f) 1392 5402 w
(recipe3) 1200 5502 w
9 /Palatino-Roman f
(produce) 720 5677 w
(a) 1089 5677 w
(graph) 1171 5677 w
(with) 1445 5677 w
(four) 1665 5677 w
(nodes) 1872 5677 w
(for) 2147 5677 w
(each) 2300 5677 w
(file) 2518 5677 w
(in) 2681 5677 w
(the) 2797 5677 w
(current) 2960 5677 w
(directory.) 3289 5677 w
(If) 3739 5677 w
(the) 3838 5677 w
(desired) 4001 5677 w
(target) 4335 5677 w
(is) 4607 5677 w
9 /Courier f
(foo) 4709 5677 w
9 /Palatino-Roman f
(,) 4871 5677 w
9 /Courier f
(mk) 4932 5677 w
9 /Palatino-Roman f
(detects) 720 5787 w
(the) 1044 5787 w
(dependency) 1214 5787 w
(between) 1746 5787 w
(it) 2127 5787 w
(and) 2227 5787 w
(the) 2423 5787 w
(original) 2592 5787 w
(file) 2947 5787 w
9 /Courier f
(foo.f) 3116 5787 w
9 /Palatino-Roman f
(through) 3430 5787 w
(intermediate) 3798 5787 w
(dependencies) 4350 5787 w
(on) 4938 5787 w
9 /Courier f
(foo.k) 720 5897 w
9 /Palatino-Roman f
(and) 1022 5897 w
9 /Courier f
(x.foo) 1206 5897 w
9 /Palatino-Roman f
(.) 1476 5897 w
(Nodes) 1554 5897 w
(associated) 1847 5897 w
(with) 2289 5897 w
(other) 2504 5897 w
(files) 2747 5897 w
(are) 2942 5897 w
(deleted) 3098 5897 w
(during) 3426 5897 w
(pruning) 3732 5897 w
(because) 4089 5897 w
(they) 4435 5897 w
(are) 4643 5897 w
(irrele\255) 4800 5897 w
(vant) 720 6007 w
(to) 921 6007 w
(the) 1024 6007 w
(production) 1172 6007 w
(of) 1642 6007 w
9 /Courier f
(foo) 1745 6007 w
9 /Palatino-Roman f
(.) 1907 6007 w
9 /Courier f
(Mk) 970 6156 w
9 /Palatino-Roman f
(avoids) 1101 6156 w
(infinite) 1389 6156 w
(cycles) 1697 6156 w
(by) 1957 6156 w
(evaluating) 2080 6156 w
(each) 2525 6156 w
(metarule) 2728 6156 w
(once.) 3107 6156 w
(Thus,) 3361 6156 w
(the) 3606 6156 w
(rule) 3754 6156 w
8 /Courier f
(%:) 1008 6321 w
(%.z) 1200 6321 w
(cp $prereq $prereq.z) 1200 6421 w
9 /Palatino-Roman f
(copies) 720 6596 w
(the) 994 6596 w
(prerequisite) 1142 6596 w
(file) 1644 6596 w
(once.) 1792 6596 w
9 /Palatino-Bold f
(9.) 720 6826 w
(Conventions) 834 6826 w
(for) 1382 6826 w
(evaluating) 1525 6826 w
(rules) 1983 6826 w
9 /Palatino-Roman f
(There) 970 6975 w
(must) 1236 6975 w
(be) 1474 6975 w
(only) 1604 6975 w
(one) 1819 6975 w
(way) 2002 6975 w
(to) 2210 6975 w
(build) 2328 6975 w
(each) 2577 6975 w
(target.) 2795 6975 w
(However,) 3113 6975 w
(during) 3547 6975 w
(evaluation) 3858 6975 w
(metarule) 4318 6975 w
(patterns) 4712 6975 w
(often) 720 7085 w
(select) 961 7085 w
(potential) 1217 7085 w
(targets) 1609 7085 w
(that) 1917 7085 w
(conflict) 2110 7085 w
(with) 2440 7085 w
(the) 2659 7085 w
(targets) 2820 7085 w
(of) 3128 7085 w
(other) 3244 7085 w
(rules.) 3491 7085 w
9 /Courier f
(Mk) 3770 7085 w
9 /Palatino-Roman f
(uses) 3914 7085 w
(several) 4123 7085 w
(conventions) 4441 7085 w
(to) 4960 7085 w
(resolve) 720 7195 w
(ambiguities) 1030 7195 w
(and) 1520 7195 w
(to) 1695 7195 w
(select) 1798 7195 w
(the) 2041 7195 w
(proper) 2189 7195 w
(dependencies.) 2485 7195 w
cleartomark
showpage
saveobj restore
%%EndPage: 6 6
%%Page: 7 7
/saveobj save def
mark
7 pagesetup
9 /Palatino-Roman f
(\255 7 \255) 2804 470 w
(When) 970 830 w
(a) 1230 830 w
(target) 1298 830 w
(selects) 1555 830 w
(more) 1836 830 w
(than) 2067 830 w
(one) 2269 830 w
(rule,) 2437 830 w
9 /Courier f
(mk) 2642 830 w
9 /Palatino-Roman f
(chooses) 2773 830 w
(a) 3107 830 w
(regular) 3175 830 w
(rule) 3489 830 w
(over) 3672 830 w
(a) 3876 830 w
(metarule.) 3945 830 w
(For) 4371 830 w
(example,) 4531 830 w
(the) 4915 830 w
9 /Courier f
(mkfile) 720 940 w
8 /Courier f
(</$objtype/mkfile) 1008 1115 w
(CFLAGS=\255w) 1008 1215 w
(FILES=f1.$O f2.$O f3.$O) 1008 1315 w
(prog:) 1008 1515 w
($FILES) 1392 1515 w
($LD \255o $target $prereq) 1200 1615 w
(%.$O:) 1008 1815 w
(%.c) 1392 1815 w
($CC $CFLAGS $stem.c) 1200 1915 w
(f2.$O:) 1008 2115 w
(f2.c) 1392 2115 w
($CC f2.c) 1200 2215 w
9 /Palatino-Roman f
(contains) 720 2400 w
(two) 1085 2400 w
(rules) 1272 2400 w
(that) 1501 2400 w
(could) 1690 2400 w
(build) 1947 2400 w
9 /Courier f
(f2.$O) 2190 2400 w
9 /Palatino-Roman f
(.) 2460 2400 w
9 /Courier f
(Mk) 2538 2400 w
9 /Palatino-Roman f
(selects) 2678 2400 w
(the) 2968 2400 w
(last) 3125 2400 w
(rule) 3296 2400 w
(because) 3487 2400 w
(its) 3832 2400 w
(target,) 3959 2400 w
9 /Courier f
(f2.$O) 4249 2400 w
9 /Palatino-Roman f
(,) 4519 2400 w
(is) 4575 2400 w
(explicitly) 4672 2400 w
(specified,) 720 2510 w
(while) 1124 2510 w
(the) 1372 2510 w
9 /Courier f
(%.$O) 1523 2510 w
9 /Palatino-Roman f
(rule) 1765 2510 w
(is) 1950 2510 w
(a) 2040 2510 w
(metarule.) 2111 2510 w
(In) 2539 2510 w
(effect,) 2648 2510 w
(the) 2913 2510 w
(explicit) 3064 2510 w
(rule) 3382 2510 w
(for) 3567 2510 w
9 /Courier f
(f2.$O) 3709 2510 w
9 /Palatino-Roman f
(overrides) 4005 2510 w
(the) 4409 2510 w
(general) 4560 2510 w
(rule) 4881 2510 w
(for) 720 2620 w
(building) 859 2620 w
(object) 1221 2620 w
(files) 1478 2620 w
(from) 1664 2620 w
(C) 1882 2620 w
(source) 1969 2620 w
(files.) 2253 2620 w
(When) 970 2775 w
(a) 1239 2775 w
(rule) 1316 2775 w
(has) 1507 2775 w
(a) 1674 2775 w
(target) 1751 2775 w
(and) 2017 2775 w
(prerequisites) 2201 2775 w
(but) 2750 2775 w
(no) 2916 2775 w
(recipe,) 3050 2775 w
(those) 3347 2775 w
(prerequisites) 3593 2775 w
(are) 4143 2775 w
(added) 4300 2775 w
(to) 4586 2775 w
(all) 4699 2775 w
(other) 4829 2775 w
(rules) 720 2885 w
(with) 944 2885 w
(recipes) 1154 2885 w
(that) 1461 2885 w
(have) 1645 2885 w
(the) 1863 2885 w
(same) 2015 2885 w
(target.) 2247 2885 w
(All) 2554 2885 w
(prerequisites,) 2703 2885 w
(regardless) 3270 2885 w
(of) 3707 2885 w
(where) 3813 2885 w
(they) 4088 2885 w
(were) 4289 2885 w
(specified,) 4512 2885 w
(are) 4916 2885 w
(available) 720 2995 w
(in) 1100 2995 w
(the) 1201 2995 w
(recipe) 1349 2995 w
(in) 1614 2995 w
(variable) 1715 2995 w
9 /Courier f
($prereq) 2060 2995 w
9 /Palatino-Roman f
(.) 2438 2995 w
(For) 2507 2995 w
(example,) 2666 2995 w
(in) 3049 2995 w
8 /Courier f
(</$objtype/mkfile) 1008 3170 w
(CFLAGS=\255w) 1008 3270 w
(FILES=f1.$O f2.$O f3.$O) 1008 3370 w
(prog:) 1008 3570 w
($FILES) 1392 3570 w
($LD \255o $target $prereq) 1200 3670 w
(%.$O:) 1008 3870 w
(hdr.h) 1392 3870 w
(%.$O:) 1008 4070 w
(%.c) 1392 4070 w
($CC $CFLAGS $stem.c) 1200 4170 w
9 /Palatino-Roman f
(the) 720 4355 w
(second) 880 4355 w
(rule) 1193 4355 w
(adds) 1387 4355 w
9 /Courier f
(hdr.h) 1615 4355 w
9 /Palatino-Roman f
(as) 1920 4355 w
(a) 2038 4355 w
(prerequisite) 2118 4355 w
(of) 2632 4355 w
(the) 2747 4355 w
(compile) 2908 4355 w
(metarule;) 3262 4355 w
(an) 3677 4355 w
(object) 3810 4355 w
(file) 4080 4355 w
(produced) 4241 4355 w
(from) 4664 4355 w
(a) 4895 4355 w
(C) 4976 4355 w
(source) 720 4465 w
(file) 1018 4465 w
(depends) 1180 4465 w
(on) 1556 4465 w
9 /Courier f
(hdr.h) 1694 4465 w
9 /Palatino-Roman f
(as) 2000 4465 w
(well) 2119 4465 w
(as) 2325 4465 w
(the) 2444 4465 w
(source) 2605 4465 w
(file.) 2902 4465 w
(Notice) 3109 4465 w
(that) 3409 4465 w
(the) 3602 4465 w
(recipe) 3763 4465 w
(of) 4041 4465 w
(the) 4157 4465 w
(compile) 4318 4465 w
(rule) 4672 4465 w
(uses) 4867 4465 w
9 /Courier f
($stem.c) 720 4575 w
9 /Palatino-Roman f
(instead) 1121 4575 w
(of) 1433 4575 w
9 /Courier f
($prereq) 1536 4575 w
9 /Palatino-Roman f
(because) 1937 4575 w
(the) 2273 4575 w
(latter) 2421 4575 w
(specification) 2654 4575 w
(would) 3177 4575 w
(attempt) 3460 4575 w
(to) 3794 4575 w
(compile) 3897 4575 w
9 /Courier f
(hdr.h) 4238 4575 w
9 /Palatino-Roman f
(.) 4508 4575 w
(When) 970 4730 w
(a) 1236 4730 w
(target) 1310 4730 w
(is) 1573 4730 w
(virtual) 1666 4730 w
(and) 1963 4730 w
(there) 2144 4730 w
(is) 2377 4730 w
(no) 2470 4730 w
(other) 2601 4730 w
(rule) 2841 4730 w
(with) 3029 4730 w
(the) 3241 4730 w
(same) 3395 4730 w
(target,) 3629 4730 w
9 /Courier f
(mk) 3915 4730 w
9 /Palatino-Roman f
(evaluates) 4053 4730 w
(each) 4458 4730 w
(prerequi\255) 4668 4730 w
(site.) 720 4840 w
(For) 926 4840 w
(example,) 1085 4840 w
(adding) 1468 4840 w
(the) 1774 4840 w
(rule) 1922 4840 w
8 /Courier f
(all:V:) 1008 5015 w
(prog) 1392 5015 w
9 /Palatino-Roman f
(to) 720 5200 w
(the) 830 5200 w
(preceding) 985 5200 w
(example) 1414 5200 w
(builds) 1781 5200 w
(the) 2060 5200 w
(executable) 2216 5200 w
(when) 2668 5200 w
(either) 2921 5200 w
9 /Courier f
(prog) 3182 5200 w
9 /Palatino-Roman f
(or) 3429 5200 w
9 /Courier f
(all) 3546 5200 w
9 /Palatino-Roman f
(is) 3739 5200 w
(the) 3834 5200 w
(specified) 3990 5200 w
(target.) 4376 5200 w
(In) 4687 5200 w
(effect,) 4801 5200 w
(the) 720 5310 w
9 /Courier f
(all) 868 5310 w
9 /Palatino-Roman f
(target) 1053 5310 w
(is) 1310 5310 w
(an) 1397 5310 w
(alias) 1517 5310 w
(for) 1720 5310 w
9 /Courier f
(prog) 1859 5310 w
9 /Palatino-Roman f
(.) 2075 5310 w
(When) 970 5465 w
(two) 1235 5465 w
(rules) 1418 5465 w
(have) 1643 5465 w
(identical) 1862 5465 w
(rule) 2234 5465 w
(headers) 2422 5465 w
(and) 2763 5465 w
(both) 2944 5465 w
(have) 3155 5465 w
(recipes,) 3375 5465 w
(the) 3707 5465 w
(later) 3861 5465 w
(rule) 4070 5465 w
(replaces) 4258 5465 w
(the) 4612 5465 w
(former) 4766 5465 w
(one.) 720 5575 w
(For) 934 5575 w
(example,) 1093 5575 w
(if) 1476 5575 w
(a) 1555 5575 w
(file) 1623 5575 w
(named) 1771 5575 w
9 /Courier f
(mkrules) 2068 5575 w
9 /Palatino-Roman f
(contains) 2469 5575 w
8 /Courier f
($O.out: $OFILES) 1008 5750 w
($LD $LFLAGS $OFILES) 1200 5850 w
(%.$O:) 1008 5950 w
(%.c) 1392 5950 w
($CC $CFLAGS $stem.c) 1200 6050 w
9 /Palatino-Roman f
(the) 720 6235 w
9 /Courier f
(mkfile) 868 6235 w
8 /Courier f
(OFILES=f1.$O f2.$O f3.$O) 1008 6410 w
(<mkrules) 1008 6610 w
($O.out: $OFILES) 1008 6810 w
($LD $LFLAGS \255l $OFILES \255lbio \255lc) 1200 6910 w
9 /Palatino-Roman f
(overrides) 720 7095 w
(the) 1122 7095 w
(general) 1271 7095 w
(loader) 1590 7095 w
(rule) 1869 7095 w
(with) 2052 7095 w
(a) 2259 7095 w
(special) 2329 7095 w
(rule) 2626 7095 w
(using) 2810 7095 w
(a) 3055 7095 w
(non\255standard) 3125 7095 w
(library) 3690 7095 w
(search) 3984 7095 w
(sequence.) 4263 7095 w
(A) 4697 7095 w
(rule) 4792 7095 w
(is) 4976 7095 w
(neutralized) 720 7205 w
(by) 1198 7205 w
(overriding) 1321 7205 w
(it) 1769 7205 w
(with) 1848 7205 w
(a) 2054 7205 w
(rule) 2122 7205 w
(with) 2304 7205 w
(a) 2510 7205 w
(null) 2578 7205 w
(recipe:) 2759 7205 w
cleartomark
showpage
saveobj restore
%%EndPage: 7 7
%%Page: 8 8
/saveobj save def
mark
8 pagesetup
9 /Palatino-Roman f
(\255 8 \255) 2804 470 w
8 /Courier f
(<mkrules) 1008 820 w
($O.out:Q:) 1008 1020 w
($OFILES) 1584 1020 w
(;) 1200 1120 w
9 /Palatino-Roman f
(The) 720 1310 w
9 /Courier f
(Q) 893 1310 w
9 /Palatino-Roman f
(attribute) 970 1310 w
(suppresses) 1337 1310 w
(the) 1796 1310 w
(printing) 1944 1310 w
(of) 2293 1310 w
(the) 2396 1310 w
(semicolon.) 2544 1310 w
(When) 970 1468 w
(a) 1243 1468 w
(rule) 1324 1468 w
(has) 1519 1468 w
(no) 1690 1468 w
(prerequisites,) 1828 1468 w
(the) 2404 1468 w
(recipe) 2566 1468 w
(is) 2845 1468 w
(executed) 2946 1468 w
(only) 3338 1468 w
(when) 3553 1468 w
(the) 3812 1468 w
(target) 3974 1468 w
(does) 4245 1468 w
(not) 4468 1468 w
(exist.) 4637 1468 w
(For) 4904 1468 w
(example,) 720 1578 w
8 /Courier f
(marker:) 1008 1758 w
(touch $target) 1200 1858 w
9 /Palatino-Roman f
(defines) 720 2048 w
(a) 1030 2048 w
(rule) 1098 2048 w
(to) 1280 2048 w
(manage) 1383 2048 w
(a) 1720 2048 w
(marker) 1788 2048 w
(file.) 2100 2048 w
(If) 2294 2048 w
(the) 2378 2048 w
(file) 2526 2048 w
(exists,) 2674 2048 w
(it) 2942 2048 w
(is) 3021 2048 w
(considered) 3108 2048 w
(up) 3570 2048 w
(to) 3702 2048 w
(date) 3806 2048 w
(regardless) 4003 2048 w
(of) 4437 2048 w
(its) 4541 2048 w
(modifica\255) 4659 2048 w
(tion) 720 2158 w
(time.) 910 2158 w
(When) 1166 2158 w
(a) 1435 2158 w
(virtual) 1512 2158 w
(target) 1812 2158 w
(has) 2078 2158 w
(no) 2245 2158 w
(prerequisites) 2379 2158 w
(the) 2927 2158 w
(recipe) 3083 2158 w
(is) 3356 2158 w
(always) 3451 2158 w
(executed.) 3761 2158 w
(The) 4193 2158 w
9 /Courier f
(clean) 4374 2158 w
9 /Palatino-Roman f
(rule) 4675 2158 w
(is) 4865 2158 w
(of) 4960 2158 w
(this) 720 2268 w
(type:) 889 2268 w
8 /Courier f
(clean:V:) 1008 2448 w
(rm \255f [$OS].out *.[$OS]) 1200 2548 w
9 /Palatino-Roman f
(When) 720 2738 w
(a) 984 2738 w
(rule) 1056 2738 w
(without) 1242 2738 w
(prerequisites) 1586 2738 w
(has) 2130 2738 w
(multiple) 2292 2738 w
(targets,) 2657 2738 w
(the) 2979 2738 w
(extra) 3132 2738 w
(targets) 3361 2738 w
(are) 3661 2738 w
(aliases) 3813 2738 w
(for) 4102 2738 w
(the) 4246 2738 w
(rule.) 4399 2738 w
(For) 4632 2738 w
(exam\255) 4796 2738 w
(ple,) 720 2848 w
(in) 889 2848 w
8 /Courier f
(clean tidy nuke:V:) 1008 3028 w
(rm \255f [$OS].out *.[$OS]) 1200 3128 w
9 /Palatino-Roman f
(the) 720 3318 w
(rule) 872 3318 w
(can) 1058 3318 w
(be) 1222 3318 w
(invoked) 1342 3318 w
(by) 1696 3318 w
(any) 1823 3318 w
(of) 1997 3318 w
(three) 2104 3318 w
(names.) 2335 3318 w
(The) 2665 3318 w
(first) 2842 3318 w
(rule) 3029 3318 w
(in) 3215 3318 w
(a) 3320 3318 w
9 /Courier f
(mkfile) 3392 3318 w
9 /Palatino-Roman f
(is) 3743 3318 w
(handled) 3835 3318 w
(specially:) 4191 3318 w
(when) 4590 3318 w
9 /Courier f
(mk) 4840 3318 w
9 /Palatino-Roman f
(is) 4976 3318 w
(invoked) 720 3428 w
(without) 1079 3428 w
(a) 1428 3428 w
(command) 1505 3428 w
(line) 1937 3428 w
(target) 2116 3428 w
(all) 2381 3428 w
(targets) 2509 3428 w
(of) 2812 3428 w
(the) 2923 3428 w
(first) 3079 3428 w
(non\255metarule) 3270 3428 w
(are) 3841 3428 w
(built.) 3996 3428 w
(When) 4259 3428 w
(that) 4527 3428 w
(rule) 4715 3428 w
(has) 4905 3428 w
(multiple) 720 3538 w
(targets,) 1083 3538 w
(the) 1403 3538 w
(recipe) 1553 3538 w
(is) 1820 3538 w
(executed) 1909 3538 w
(once) 2290 3538 w
(for) 2501 3538 w
(each) 2643 3538 w
(target;) 2849 3538 w
(normally,) 3132 3538 w
(the) 3545 3538 w
(recipe) 3696 3538 w
(of) 3964 3538 w
(a) 4070 3538 w
(rule) 4141 3538 w
(with) 4326 3538 w
(multiple) 4535 3538 w
(tar\255) 4899 3538 w
(gets) 720 3648 w
(is) 904 3648 w
(only) 991 3648 w
(executed) 1192 3648 w
(once.) 1570 3648 w
(A) 970 3806 w
(rule) 1064 3806 w
(applies) 1247 3806 w
(to) 1557 3806 w
(a) 1661 3806 w
(target) 1730 3806 w
(only) 1988 3806 w
(when) 2190 3806 w
(its) 2436 3806 w
(prerequisites) 2554 3806 w
(exist) 3095 3806 w
(or) 3303 3806 w
(can) 3413 3806 w
(be) 3574 3806 w
(derived.) 3691 3806 w
(More) 4070 3806 w
(than) 4309 3806 w
(one) 4512 3806 w
(rule) 4682 3806 w
(may) 4866 3806 w
(have) 720 3916 w
(the) 937 3916 w
(same) 1087 3916 w
(target) 1317 3916 w
(as) 1576 3916 w
(long) 1684 3916 w
(as) 1887 3916 w
(only) 1995 3916 w
(one) 2198 3916 w
(rule) 2368 3916 w
(with) 2552 3916 w
(a) 2760 3916 w
(recipe) 2830 3916 w
(remains) 3097 3916 w
(applicable) 3441 3916 w
(after) 3875 3916 w
(the) 4084 3916 w
(dependency) 4234 3916 w
(evalua\255) 4746 3916 w
(tion) 720 4026 w
(completes.) 907 4026 w
(For) 1385 4026 w
(example,) 1550 4026 w
(consider) 1939 4026 w
(a) 2308 4026 w
(program) 2382 4026 w
(built) 2761 4026 w
(from) 2976 4026 w
(C) 3200 4026 w
(and) 3293 4026 w
(assembler) 3475 4026 w
(source) 3903 4026 w
(files.) 4194 4026 w
(Two) 4433 4026 w
(rules) 4643 4026 w
(pro\255) 4870 4026 w
(duce) 720 4136 w
(object) 935 4136 w
(files:) 1192 4136 w
8 /Courier f
(%.$O:) 1008 4316 w
(%.c) 1392 4316 w
($CC $CFLAGS $stem.c) 1200 4416 w
(%.$O:) 1008 4516 w
(%.s) 1392 4516 w
($AS $AFLAGS $stem.s) 1200 4616 w
9 /Palatino-Roman f
(As) 720 4806 w
(long) 854 4806 w
(as) 1058 4806 w
(there) 1167 4806 w
(are) 1397 4806 w
(not) 1547 4806 w
(two) 1706 4806 w
(source) 1888 4806 w
(files) 2176 4806 w
(with) 2366 4806 w
(names) 2576 4806 w
(like) 2860 4806 w
9 /Palatino-Italic f
(foo) 3032 4806 w
9 /Courier f
(.c) 3137 4806 w
9 /Palatino-Roman f
(and) 3272 4806 w
9 /Palatino-Italic f
(foo) 3451 4806 w
9 /Courier f
(.s) 3556 4806 w
9 /Palatino-Roman f
(,) 3664 4806 w
9 /Courier f
(mk) 3714 4806 w
9 /Palatino-Roman f
(can) 3849 4806 w
(unambiguously) 4013 4806 w
(select) 4668 4806 w
(the) 4915 4806 w
(proper) 720 4916 w
(rule.) 1017 4916 w
(If) 1246 4916 w
(both) 1331 4916 w
(files) 1537 4916 w
(exist,) 1723 4916 w
(there) 1953 4916 w
(are) 2180 4916 w
(ambiguous) 2327 4916 w
(rules) 2796 4916 w
(to) 3016 4916 w
(produce) 3119 4916 w
9 /Palatino-Italic f
(foo) 3474 4916 w
9 /Courier f
(.$O) 3579 4916 w
9 /Palatino-Roman f
(,) 3741 4916 w
(and) 3787 4916 w
9 /Courier f
(mk) 3962 4916 w
9 /Palatino-Roman f
(exits) 4093 4916 w
(with) 4300 4916 w
(an) 4506 4916 w
(error) 4626 4916 w
(mes\255) 4850 4916 w
(sage.) 720 5026 w
(In) 970 5184 w
(Plan) 1085 5184 w
(9,) 1294 5184 w
(many) 1394 5184 w
(programs) 1652 5184 w
(consist) 2072 5184 w
(of) 2379 5184 w
(portable) 2492 5184 w
(code) 2859 5184 w
(stored) 3080 5184 w
(in) 3365 5184 w
(one) 3476 5184 w
(directory) 3654 5184 w
(and) 4053 5184 w
(architecture\255specific) 4238 5184 w
(source) 720 5294 w
(stored) 1004 5294 w
(in) 1279 5294 w
(another.) 1380 5294 w
(For) 1757 5294 w
(example,) 1916 5294 w
(the) 2299 5294 w
9 /Courier f
(mkfile) 2447 5294 w
8 /Courier f
(</$objtype/mkfile) 1008 5474 w
(CFLAGS=\255w) 1008 5574 w
(FILES=f1.$O f2.$O f3.$O f3.$O) 1008 5674 w
(prog:) 1008 5874 w
($FILES) 1392 5874 w
($LD \255o $target $prereq) 1200 5974 w
(%.$O:) 1008 6174 w
(%.$c) 1392 6174 w
($CC $CFLAGS $stem.c) 1200 6274 w
(%.$O:) 1008 6474 w
(../port/%.c) 1392 6474 w
($CC $CFLAGS ../port/$stem.c) 1200 6574 w
9 /Palatino-Roman f
(builds) 720 6764 w
(the) 992 6764 w
(program) 1140 6764 w
(named) 1513 6764 w
9 /Courier f
(prog) 1810 6764 w
9 /Palatino-Roman f
(using) 2049 6764 w
(portable) 2292 6764 w
(code) 2649 6764 w
(in) 2860 6764 w
(directory) 2961 6764 w
9 /Courier f
(../port) 3350 6764 w
9 /Palatino-Roman f
(and) 3751 6764 w
(architecture\255specific) 3926 6764 w
(code) 4751 6764 w
(in) 4962 6764 w
(the) 720 6874 w
(current) 870 6874 w
(directory.) 1186 6874 w
(As) 1623 6874 w
(long) 1756 6874 w
(as) 1959 6874 w
(the) 2067 6874 w
(names) 2217 6874 w
(of) 2499 6874 w
(the) 2604 6874 w
(C) 2754 6874 w
(source) 2843 6874 w
(files) 3129 6874 w
(in) 3317 6874 w
9 /Courier f
(../port) 3420 6874 w
9 /Palatino-Roman f
(do) 3823 6874 w
(not) 3953 6874 w
(conflict) 4109 6874 w
(with) 4427 6874 w
(the) 4634 6874 w
(names) 4783 6874 w
(of) 720 6984 w
(files) 827 6984 w
(in) 1017 6984 w
(the) 1122 6984 w
(current) 1274 6984 w
(directory,) 1592 6984 w
9 /Courier f
(mk) 2008 6984 w
9 /Palatino-Roman f
(selects) 2143 6984 w
(the) 2428 6984 w
(appropriate) 2580 6984 w
(rule.) 3080 6984 w
(If) 3312 6984 w
(like\255named) 3400 6984 w
(files) 3876 6984 w
(exist) 4066 6984 w
(in) 4278 6984 w
(both) 4384 6984 w
(directories,) 4594 6984 w
(the) 720 7094 w
(specification) 871 7094 w
(is) 1397 7094 w
(ambiguous) 1487 7094 w
(and) 1959 7094 w
(results) 2137 7094 w
(in) 2428 7094 w
(an) 2532 7094 w
(error.) 2655 7094 w
(An) 2928 7094 w
(explicit) 3076 7094 w
(target) 3394 7094 w
(resolves) 3654 7094 w
(the) 4004 7094 w
(ambiguity.) 4154 7094 w
(For) 4635 7094 w
(exam\255) 4796 7094 w
(ple,) 720 7204 w
(adding) 889 7204 w
(the) 1195 7204 w
(rule) 1343 7204 w
cleartomark
showpage
saveobj restore
%%EndPage: 8 8
%%Page: 9 9
/saveobj save def
mark
9 pagesetup
9 /Palatino-Roman f
(\255 9 \255) 2804 470 w
8 /Courier f
(f2.$O:) 1008 820 w
(f2.c) 1392 820 w
($CC $CFLAGS $f2.c) 1200 920 w
9 /Palatino-Roman f
(to) 720 1107 w
(the) 823 1107 w
(previous) 972 1107 w
9 /Courier f
(mkfile) 1348 1107 w
9 /Palatino-Roman f
(uses) 1696 1107 w
(the) 1893 1107 w
(architecture\255specific) 2042 1107 w
(version) 2868 1107 w
(of) 3188 1107 w
9 /Courier f
(f2.c) 3292 1107 w
9 /Palatino-Roman f
(instead) 3532 1107 w
(of) 3845 1107 w
(the) 3949 1107 w
(portable) 4098 1107 w
(one.) 4456 1107 w
(Here,) 4671 1107 w
(the) 4915 1107 w
(explicit) 720 1217 w
(rule) 1035 1217 w
(documents) 1217 1217 w
(which) 1681 1217 w
(of) 1949 1217 w
(the) 2052 1217 w
(like\255named) 2200 1217 w
(source) 2672 1217 w
(files) 2956 1217 w
(is) 3142 1217 w
(used) 3229 1217 w
(to) 3442 1217 w
(build) 3545 1217 w
(the) 3779 1217 w
(program.) 3927 1217 w
9 /Courier f
(Mk) 970 1373 w
9 /Palatino-Roman f
('s) 1078 1373 w
(heuristics) 1171 1373 w
(can) 1584 1373 w
(produce) 1751 1373 w
(unintended) 2113 1373 w
(results) 2605 1373 w
(when) 2901 1373 w
(rules) 3154 1373 w
(are) 3382 1373 w
(not) 3537 1373 w
(carefully) 3700 1373 w
(specified.) 4081 1373 w
(For) 4513 1373 w
(example,) 4680 1373 w
(the) 720 1483 w
(rules) 868 1483 w
(that) 1088 1483 w
(build) 1268 1483 w
(object) 1502 1483 w
(files) 1759 1483 w
(from) 1945 1483 w
(C) 2163 1483 w
(or) 2250 1483 w
(assembler) 2359 1483 w
(source) 2780 1483 w
(files) 3064 1483 w
8 /Courier f
(%.$O:) 1008 1660 w
(%.c) 1392 1660 w
($CC $CFLAGS $stem.c) 1200 1760 w
(%.$O:) 1008 1860 w
(%.s) 1392 1860 w
($AS $AFLAGS $stem.s) 1200 1960 w
9 /Palatino-Roman f
(illustrate) 720 2147 w
(a) 1097 2147 w
(subtle) 1165 2147 w
(pratfall.) 1429 2147 w
(Adding) 1790 2147 w
(a) 2121 2147 w
(header) 2189 2147 w
(file) 2486 2147 w
(dependency) 2634 2147 w
(to) 3144 2147 w
(the) 3247 2147 w
(compile) 3395 2147 w
(rule) 3736 2147 w
8 /Courier f
(%.$O:) 1008 2324 w
(%.c hdr.h) 1392 2324 w
($CC $CFLAGS $stem.c) 1200 2424 w
9 /Palatino-Roman f
(produces) 720 2611 w
(the) 1113 2611 w
(error) 1261 2611 w
(message) 1485 2611 w
8 /Courier f
(don't know how to make ') 1008 2788 w
8 /Palatino-Italic f
(file) 2160 2788 w
8 /Courier f
(.c') 2257 2788 w
9 /Palatino-Roman f
(when) 720 2975 w
9 /Palatino-Italic f
(file) 968 2975 w
9 /Palatino-Roman f
(.s) 1078 2975 w
(is) 1165 2975 w
(an) 1255 2975 w
(assembler) 1378 2975 w
(source) 1802 2975 w
(file.) 2089 2975 w
(This) 2286 2975 w
(occurs) 2483 2975 w
(because) 2768 2975 w
9 /Palatino-Italic f
(file) 3108 2975 w
9 /Courier f
(.s) 3218 2975 w
9 /Palatino-Roman f
(satisfies) 3353 2975 w
(the) 3694 2975 w
(assemble) 3846 2975 w
(rule) 4235 2975 w
(and) 4421 2975 w
9 /Courier f
(hdr.h) 4600 2975 w
9 /Palatino-Roman f
(sat\255) 4897 2975 w
(isfies) 720 3085 w
(the) 951 3085 w
(compile) 1106 3085 w
(rule,) 1454 3085 w
(so) 1666 3085 w
(either) 1784 3085 w
(rule) 2044 3085 w
(can) 2233 3085 w
(potentially) 2400 3085 w
(produce) 2862 3085 w
(the) 3224 3085 w
(target.) 3379 3085 w
(When) 3689 3085 w
(a) 3955 3085 w
(prerequisite) 4029 3085 w
(exists) 4537 3085 w
(or) 4788 3085 w
(can) 4903 3085 w
(be) 720 3195 w
(derived,) 852 3195 w
(all) 1223 3195 w
(other) 1359 3195 w
(prerequisites) 1609 3195 w
(in) 2166 3195 w
(that) 2284 3195 w
(rule) 2481 3195 w
(header) 2680 3195 w
(must) 2994 3195 w
(exist) 3235 3195 w
(or) 3459 3195 w
(be) 3585 3195 w
(derivable;) 3718 3195 w
(here,) 4156 3195 w
(the) 4393 3195 w
(existence) 4558 3195 w
(of) 4960 3195 w
9 /Courier f
(hdr.h) 720 3305 w
9 /Palatino-Roman f
(forces) 1023 3305 w
(the) 1293 3305 w
(evaluation) 1451 3305 w
(of) 1906 3305 w
(a) 2019 3305 w
(C) 2097 3305 w
(source) 2194 3305 w
(file.) 2488 3305 w
(Specifying) 2692 3305 w
(the) 3144 3305 w
(dependencies) 3302 3305 w
(in) 3879 3305 w
(different) 3990 3305 w
(rules) 4368 3305 w
(avoids) 4597 3305 w
(this) 4894 3305 w
(interpretation:) 720 3415 w
8 /Courier f
(%.$O:) 1008 3592 w
(hdr.h) 1392 3592 w
(%.$O:) 1008 3692 w
(%.c) 1392 3692 w
($CC $CFLAGS $stem.c) 1200 3792 w
9 /Palatino-Roman f
(Although) 720 3979 w
9 /Courier f
(hdr.h) 1141 3979 w
9 /Palatino-Roman f
(is) 1448 3979 w
(an) 1549 3979 w
(additional) 1683 3979 w
(prerequisite) 2130 3979 w
(of) 2646 3979 w
(the) 2763 3979 w
(compile) 2926 3979 w
(rule,) 3282 3979 w
(the) 3502 3979 w
(two) 3665 3979 w
(rules) 3858 3979 w
(are) 4093 3979 w
(evaluated) 4255 3979 w
(indepen\255) 4685 3979 w
(dently) 720 4089 w
(and) 1005 4089 w
(the) 1186 4089 w
(existence) 1340 4089 w
(of) 1730 4089 w
(the) 1838 4089 w
(C) 1991 4089 w
(source) 2083 4089 w
(file) 2372 4089 w
(is) 2525 4089 w
(not) 2617 4089 w
(linked) 2777 4089 w
(to) 3057 4089 w
(the) 3165 4089 w
(existence) 3318 4089 w
(of) 3708 4089 w
(the) 3816 4089 w
(header) 3969 4089 w
(file.) 4271 4089 w
(However,) 4470 4089 w
(this) 4894 4089 w
(specification) 720 4199 w
(describes) 1250 4199 w
(a) 1649 4199 w
(different) 1724 4199 w
(dependency.) 2099 4199 w
(Originally,) 2662 4199 w
(only) 3123 4199 w
(object) 3331 4199 w
(files) 3595 4199 w
(derived) 3788 4199 w
(from) 4127 4199 w
(C) 4352 4199 w
(files) 4446 4199 w
(depended) 4640 4199 w
(on) 720 4309 w
9 /Courier f
(hdr.h) 845 4309 w
9 /Palatino-Roman f
(;) 1115 4309 w
(now) 1161 4309 w
(all) 1361 4309 w
(object) 1481 4309 w
(files,) 1738 4309 w
(including) 1947 4309 w
(those) 2351 4309 w
(built) 2587 4309 w
(from) 2796 4309 w
(assembler) 3014 4309 w
(source,) 3435 4309 w
(depend) 3742 4309 w
(on) 4067 4309 w
(the) 4192 4309 w
(header) 4340 4309 w
(file.) 4637 4309 w
(Metarule) 970 4465 w
(patterns) 1361 4465 w
(should) 1717 4465 w
(be) 2020 4465 w
(as) 2141 4465 w
(restrictive) 2252 4465 w
(as) 2679 4465 w
(possible) 2790 4465 w
(to) 3144 4465 w
(prevent) 3253 4465 w
(conflicts) 3591 4465 w
(with) 3952 4465 w
(other) 4164 4465 w
(rules.) 4404 4465 w
(Consider) 4676 4465 w
(the) 720 4575 w
9 /Courier f
(mkfile) 868 4575 w
8 /Courier f
(</$objtype/mkfile) 1008 4752 w
(BIN=/$objtype/bin) 1008 4852 w
(PROG=foo) 1008 4952 w
(install:V:) 1008 5152 w
($BIN/$PROG) 1584 5152 w
(%:) 1008 5352 w
(%.c) 1200 5352 w
($CC $stem.c) 1200 5452 w
($LD \255o $target $stem.$O) 1200 5552 w
($BIN/%: %) 1008 5752 w
(mv $stem $target) 1200 5852 w
9 /Palatino-Roman f
(The) 720 6039 w
(first) 898 6039 w
(target) 1086 6039 w
(builds) 1348 6039 w
(an) 1625 6039 w
(executable) 1750 6039 w
(in) 2199 6039 w
(the) 2305 6039 w
(local) 2458 6039 w
(directory;) 2673 6039 w
(the) 3090 6039 w
(second) 3243 6039 w
(installs) 3549 6039 w
(it) 3858 6039 w
(in) 3943 6039 w
(the) 4050 6039 w
(directory) 4204 6039 w
(of) 4599 6039 w
(executa\255) 4708 6039 w
(bles) 720 6149 w
(for) 900 6149 w
(the) 1039 6149 w
(architecture.) 1187 6149 w
(Invoking) 1731 6149 w
9 /Courier f
(mk) 2116 6149 w
9 /Palatino-Roman f
(with) 2247 6149 w
(the) 2453 6149 w
9 /Courier f
(install) 2601 6149 w
9 /Palatino-Roman f
(target) 3002 6149 w
(produces:) 3259 6149 w
8 /Courier f
(mk: ambiguous recipes for /mips/bin/foo:) 720 6326 w
(/mips/bin/foo <\255\(mkfile:8\)\255 /mips/bin/foo.c <\255\(mkfile:12\)\255 foo.c) 720 6426 w
(/mips/bin/foo <\255\(mkfile:12\)\255 foo <\255\(mkfile:8\)\255 foo.c) 720 6526 w
9 /Palatino-Roman f
(The) 720 6713 w
(prerequisite) 895 6713 w
(of) 1399 6713 w
(the) 1504 6713 w
9 /Courier f
(install) 1654 6713 w
9 /Palatino-Roman f
(rule,) 2057 6713 w
9 /Courier f
($BIN/$PROG) 2264 6713 w
9 /Palatino-Roman f
(,) 2804 6713 w
(matches) 2852 6713 w
(both) 3204 6713 w
(metarules) 3411 6713 w
(because) 3830 6713 w
(the) 4168 6713 w
9 /Courier f
(%) 4318 6713 w
9 /Palatino-Roman f
(pattern) 4397 6713 w
(matches) 4713 6713 w
(everything.) 720 6823 w
(The) 1222 6823 w
9 /Courier f
(&) 1395 6823 w
9 /Palatino-Roman f
(pattern) 1472 6823 w
(restricts) 1785 6823 w
(the) 2125 6823 w
(compile) 2273 6823 w
(rule) 2614 6823 w
(to) 2796 6823 w
(files) 2899 6823 w
(in) 3085 6823 w
(the) 3186 6823 w
(current) 3334 6823 w
(directory) 3648 6823 w
(and) 4037 6823 w
(avoids) 4212 6823 w
(the) 4500 6823 w
(conflict:) 4648 6823 w
8 /Courier f
(&:) 1008 7000 w
(&.c) 1200 7000 w
($CC $stem.c) 1200 7100 w
($LD \255o $target $stem.$O) 1200 7200 w
cleartomark
showpage
saveobj restore
%%EndPage: 9 9
%%Page: 10 10
/saveobj save def
mark
10 pagesetup
9 /Palatino-Roman f
(\255 10 \255) 2782 470 w
9 /Palatino-Bold f
(10.) 720 830 w
(Missing) 879 830 w
(intermediates) 1237 830 w
9 /Courier f
(Mk) 970 976 w
9 /Palatino-Roman f
(does) 1112 976 w
(not) 1332 976 w
(build) 1498 976 w
(a) 1743 976 w
(missing) 1822 976 w
(intermediate) 2165 976 w
(file) 2707 976 w
(if) 2866 976 w
(a) 2956 976 w
(target) 3036 976 w
(is) 3305 976 w
(up) 3404 976 w
(to) 3547 976 w
(date) 3662 976 w
(with) 3870 976 w
(the) 4088 976 w
(prerequisites) 4248 976 w
(of) 4800 976 w
(the) 4915 976 w
(intermediate.) 720 1086 w
(For) 1305 1086 w
(example,) 1472 1086 w
(when) 1863 1086 w
(an) 2116 1086 w
(executable) 2244 1086 w
(is) 2696 1086 w
(up) 2791 1086 w
(to) 2930 1086 w
(date) 3041 1086 w
(with) 3245 1086 w
(its) 3458 1086 w
(source) 3582 1086 w
(file,) 3873 1086 w
9 /Courier f
(mk) 4051 1086 w
9 /Palatino-Roman f
(does) 4189 1086 w
(not) 4405 1086 w
(compile) 4567 1086 w
(the) 4915 1086 w
(source) 720 1196 w
(to) 1006 1196 w
(create) 1111 1196 w
(a) 1373 1196 w
(missing) 1443 1196 w
(object) 1777 1196 w
(file.) 2036 1196 w
(The) 2232 1196 w
(evaluation) 2407 1196 w
(only) 2854 1196 w
(applies) 3057 1196 w
(when) 3368 1196 w
(a) 3616 1196 w
(target) 3687 1196 w
(is) 3947 1196 w
(considered) 4037 1196 w
(up) 4501 1196 w
(to) 4635 1196 w
(date) 4741 1196 w
(by) 4940 1196 w
(pretending) 720 1306 w
(that) 1192 1306 w
(the) 1380 1306 w
(intermediate) 1536 1306 w
(exists.) 2075 1306 w
(Thus,) 2374 1306 w
(it) 2626 1306 w
(does) 2712 1306 w
(not) 2928 1306 w
(apply) 3090 1306 w
(when) 3349 1306 w
(the) 3601 1306 w
(intermediate) 3756 1306 w
(is) 4294 1306 w
(a) 4388 1306 w
(command) 4463 1306 w
(line) 4893 1306 w
(target) 720 1416 w
(or) 977 1416 w
(when) 1086 1416 w
(it) 1331 1416 w
(has) 1410 1416 w
(no) 1568 1416 w
(prerequisites.) 1693 1416 w
(This) 970 1562 w
(capability) 1186 1562 w
(is) 1623 1562 w
(useful) 1732 1562 w
(for) 2023 1562 w
(maintaining) 2185 1562 w
(archives.) 2714 1562 w
(We) 3137 1562 w
(can) 3316 1562 w
(modify) 3499 1562 w
(the) 3835 1562 w
(archive) 4006 1562 w
(update) 4345 1562 w
(recipe) 4672 1562 w
(to) 4960 1562 w
(remove) 720 1672 w
(object) 1045 1672 w
(files) 1302 1672 w
(after) 1488 1672 w
(they) 1695 1672 w
(are) 1893 1672 w
(archived:) 2040 1672 w
8 /Courier f
($LIB\(%\):N:) 1008 1832 w
(%) 1584 1832 w
($LIB:) 1008 1932 w
(${OBJS:%=$LIB\(%\)}) 1392 1932 w
(names=`{membername $newprereq}) 1200 2032 w
(ar rv $LIB $names) 1200 2132 w
(rm \255f $names) 1200 2232 w
9 /Palatino-Roman f
(A) 720 2402 w
(subsequent) 818 2402 w
9 /Courier f
(mk) 1298 2402 w
9 /Palatino-Roman f
(does) 1434 2402 w
(not) 1649 2402 w
(remake) 1810 2402 w
(the) 2135 2402 w
(object) 2289 2402 w
(files) 2552 2402 w
(as) 2744 2402 w
(long) 2856 2402 w
(as) 3063 2402 w
(the) 3175 2402 w
(members) 3329 2402 w
(of) 3726 2402 w
(the) 3835 2402 w
(archive) 3989 2402 w
(remain) 4311 2402 w
(up) 4621 2402 w
(to) 4758 2402 w
(date) 4867 2402 w
(with) 720 2512 w
(the) 933 2512 w
(source) 1087 2512 w
(files.) 1377 2512 w
(The) 1615 2512 w
9 /Courier f
(\255i) 1794 2512 w
9 /Palatino-Roman f
(command) 1931 2512 w
(line) 2360 2512 w
(option) 2536 2512 w
(overrides) 2827 2512 w
(this) 3234 2512 w
(behavior) 3409 2512 w
(and) 3791 2512 w
(causes) 3972 2512 w
(all) 4259 2512 w
(intermediates) 4385 2512 w
(to) 4960 2512 w
(be) 720 2622 w
(built.) 836 2622 w
9 /Palatino-Bold f
(11.) 720 2842 w
(Alternative) 879 2842 w
(out\255of\255date) 1367 2842 w
(determination) 1845 2842 w
9 /Palatino-Roman f
(Sometimes) 970 2988 w
(the) 1434 2988 w
(modification) 1587 2988 w
(time) 2124 2988 w
(is) 2330 2988 w
(not) 2422 2988 w
(useful) 2582 2988 w
(for) 2855 2988 w
(deciding) 2999 2988 w
(when) 3374 2988 w
(a) 3624 2988 w
(target) 3697 2988 w
(and) 3959 2988 w
(prerequisite) 4139 2988 w
(are) 4646 2988 w
(out) 4798 2988 w
(of) 4960 2988 w
(date.) 720 3098 w
(The) 963 3098 w
9 /Courier f
(P) 1137 3098 w
9 /Palatino-Roman f
(attribute) 1215 3098 w
(replaces) 1583 3098 w
(the) 1931 3098 w
(default) 2079 3098 w
(mechanism) 2385 3098 w
(with) 2862 3098 w
(the) 3068 3098 w
(result) 3216 3098 w
(of) 3466 3098 w
(a) 3569 3098 w
(command.) 3637 3098 w
(The) 4106 3098 w
(command) 4279 3098 w
(immedi\255) 4702 3098 w
(ately) 720 3208 w
(follows) 949 3208 w
(the) 1279 3208 w
(attribute) 1439 3208 w
(and) 1818 3208 w
(is) 2005 3208 w
(repeatedly) 2104 3208 w
(executed) 2564 3208 w
(with) 2954 3208 w
(each) 3172 3208 w
(target) 3387 3208 w
(and) 3657 3208 w
(each) 3845 3208 w
(prerequisite) 4061 3208 w
(as) 4576 3208 w
(its) 4695 3208 w
(argu\255) 4825 3208 w
(ments;) 720 3318 w
(if) 1011 3318 w
(its) 1093 3318 w
(exit) 1213 3318 w
(status) 1385 3318 w
(is) 1646 3318 w
(non\255zero,) 1736 3318 w
(they) 2143 3318 w
(are) 2343 3318 w
(considered) 2492 3318 w
(out) 2955 3318 w
(of) 3114 3318 w
(date) 3219 3318 w
(and) 3417 3318 w
(the) 3594 3318 w
(recipe) 3744 3318 w
(is) 4011 3318 w
(executed.) 4100 3318 w
(Consider) 4526 3318 w
(the) 4915 3318 w
9 /Courier f
(mkfile) 720 3428 w
8 /Courier f
(foo.ref:Pcmp \255s:) 1008 3588 w
(foo) 1968 3588 w
(cp $prereq $target) 1200 3688 w
9 /Palatino-Roman f
(The) 720 3858 w
(command) 893 3858 w
8 /Courier f
(cmp \255s foo.ref foo) 1008 4018 w
9 /Palatino-Roman f
(is) 720 4188 w
(executed) 807 4188 w
(and) 1185 4188 w
(if) 1360 4188 w
9 /Courier f
(foo.ref) 1439 4188 w
9 /Palatino-Roman f
(differs) 1840 4188 w
(from) 2121 4188 w
9 /Courier f
(foo) 2339 4188 w
9 /Palatino-Roman f
(,) 2501 4188 w
(the) 2547 4188 w
(latter) 2695 4188 w
(file) 2928 4188 w
(is) 3076 4188 w
(copied) 3163 4188 w
(to) 3454 4188 w
(the) 3557 4188 w
(former.) 3705 4188 w
9 /Palatino-Bold f
(12.) 720 4408 w
(Parallel) 879 4408 w
(processing) 1217 4408 w
9 /Palatino-Roman f
(When) 970 4554 w
(possible,) 1234 4554 w
9 /Courier f
(mk) 1609 4554 w
9 /Palatino-Roman f
(executes) 1744 4554 w
(recipes) 2109 4554 w
(in) 2416 4554 w
(parallel.) 2521 4554 w
(The) 2895 4554 w
(variable) 3072 4554 w
9 /Courier f
($NPROC) 3421 4554 w
9 /Palatino-Roman f
(specifies) 3772 4554 w
(the) 4137 4554 w
(maximum) 4289 4554 w
(number) 4726 4554 w
(of) 720 4664 w
(simultaneously) 829 4664 w
(executing) 1469 4664 w
(recipes.) 1882 4664 w
(Normally) 2236 4664 w
(it) 2651 4664 w
(is) 2735 4664 w
(imported) 2827 4664 w
(from) 3228 4664 w
(the) 3451 4664 w
(environment,) 3604 4664 w
(where) 4169 4664 w
(the) 4446 4664 w
(system) 4599 4664 w
(has) 4905 4664 w
(set) 720 4774 w
(it) 854 4774 w
(to) 933 4774 w
(the) 1036 4774 w
(number) 1184 4774 w
(of) 1521 4774 w
(available) 1624 4774 w
(processors.) 2004 4774 w
(It) 2496 4774 w
(can) 2580 4774 w
(be) 2740 4774 w
(decreased) 2856 4774 w
(by) 3277 4774 w
(assigning) 3400 4774 w
(a) 3800 4774 w
(new) 3868 4774 w
(value) 4061 4774 w
(and) 4303 4774 w
(can) 4478 4774 w
(be) 4639 4774 w
(set) 4756 4774 w
(to) 4891 4774 w
(1) 4995 4774 w
(to) 720 4884 w
(force) 827 4884 w
(single\255threaded) 1053 4884 w
(recipe) 1704 4884 w
(execution.) 1973 4884 w
(This) 2431 4884 w
(is) 2628 4884 w
(necessary) 2718 4884 w
(when) 3129 4884 w
(several) 3377 4884 w
(targets) 3685 4884 w
(access) 3983 4884 w
(a) 4253 4884 w
(common) 4324 4884 w
(resource) 4700 4884 w
(such) 720 4994 w
(as) 927 4994 w
(a) 1034 4994 w
(status) 1103 4994 w
(file) 1362 4994 w
(or) 1511 4994 w
(data) 1621 4994 w
(base.) 1820 4994 w
(When) 2066 4994 w
(there) 2327 4994 w
(is) 2555 4994 w
(no) 2643 4994 w
(dependency) 2769 4994 w
(between) 3280 4994 w
(targets,) 3640 4994 w
9 /Courier f
(mk) 3959 4994 w
9 /Palatino-Roman f
(assumes) 4091 4994 w
(the) 4450 4994 w
(recipes) 4599 4994 w
(can) 4903 4994 w
(be) 720 5104 w
(executed) 858 5104 w
(concurrently.) 1258 5104 w
(Normally,) 1858 5104 w
(this) 2313 5104 w
(allows) 2504 5104 w
(multiple) 2809 5104 w
(prerequisites) 3192 5104 w
(to) 3754 5104 w
(be) 3879 5104 w
(built) 4016 5104 w
(simultaneously;) 4246 5104 w
(for) 4924 5104 w
(example,) 720 5214 w
(the) 1103 5214 w
(object) 1251 5214 w
(file) 1508 5214 w
(prerequisites) 1656 5214 w
(of) 2197 5214 w
(a) 2301 5214 w
(load) 2370 5214 w
(rule) 2570 5214 w
(can) 2753 5214 w
(be) 2914 5214 w
(produced) 3031 5214 w
(by) 3442 5214 w
(compiling) 3566 5214 w
(the) 3993 5214 w
(source) 4142 5214 w
(files) 4427 5214 w
(in) 4614 5214 w
(parallel.) 4716 5214 w
9 /Courier f
(Mk) 720 5324 w
9 /Palatino-Roman f
(does) 857 5324 w
(not) 1071 5324 w
(define) 1231 5324 w
(the) 1508 5324 w
(order) 1661 5324 w
(of) 1909 5324 w
(execution) 2017 5324 w
(of) 2430 5324 w
(independent) 2538 5324 w
(recipes.) 3071 5324 w
(When) 3425 5324 w
(the) 3690 5324 w
(prerequisites) 3843 5324 w
(of) 4388 5324 w
(a) 4496 5324 w
(rule) 4569 5324 w
(are) 4756 5324 w
(not) 4908 5324 w
(independent,) 720 5434 w
(the) 1273 5434 w
(dependencies) 1423 5434 w
(between) 1992 5434 w
(them) 2353 5434 w
(should) 2582 5434 w
(be) 2882 5434 w
(specified) 3001 5434 w
(in) 3382 5434 w
(a) 3486 5434 w
(rule) 3557 5434 w
(or) 3742 5434 w
(the) 3854 5434 w
9 /Courier f
(mkfile) 4005 5434 w
9 /Palatino-Roman f
(should) 4355 5434 w
(be) 4656 5434 w
(single\255) 4775 5434 w
(threaded.) 720 5544 w
(For) 1148 5544 w
(example,) 1307 5544 w
(the) 1690 5544 w
(archive) 1838 5544 w
(update) 2154 5544 w
(rules) 2458 5544 w
8 /Courier f
($LIB\(%\):N:) 1008 5704 w
(%) 1584 5704 w
($LIB:) 1008 5804 w
(${OBJS:%=$LIB\(%\)}) 1392 5804 w
(ar rv $LIB `{membername $newprereq}) 1200 5904 w
9 /Palatino-Roman f
(compile) 720 6074 w
(source) 1066 6074 w
(files) 1355 6074 w
(in) 1547 6074 w
(parallel) 1654 6074 w
(but) 1984 6074 w
(update) 2147 6074 w
(all) 2457 6074 w
(members) 2583 6074 w
(of) 2980 6074 w
(the) 3089 6074 w
(archive) 3243 6074 w
(at) 3565 6074 w
(once.) 3669 6074 w
(It) 3929 6074 w
(is) 4019 6074 w
(a) 4112 6074 w
(mistake) 4186 6074 w
(to) 4526 6074 w
(merge) 4635 6074 w
(the) 4915 6074 w
(two) 720 6184 w
(rules) 898 6184 w
8 /Courier f
($LIB\(%\):) 1008 6344 w
(%) 1584 6344 w
(ar rv $LIB $stem) 1200 6444 w
9 /Palatino-Roman f
(because) 720 6614 w
(an) 1064 6614 w
9 /Courier f
(ar) 1192 6614 w
9 /Palatino-Roman f
(command) 1331 6614 w
(is) 1762 6614 w
(executed) 1857 6614 w
(for) 2244 6614 w
(every) 2392 6614 w
(member) 2647 6614 w
(of) 3009 6614 w
(the) 3121 6614 w
(library.) 3278 6614 w
(Not) 3625 6614 w
(only) 3812 6614 w
(is) 4022 6614 w
(this) 4118 6614 w
(inefficient,) 4296 6614 w
(but) 4749 6614 w
(the) 4915 6614 w
(archive) 720 6724 w
(is) 1036 6724 w
(updated) 1123 6724 w
(in) 1482 6724 w
(parallel,) 1583 6724 w
(making) 1930 6724 w
(interference) 2255 6724 w
(likely.) 2752 6724 w
(The) 970 6870 w
9 /Courier f
($nproc) 1164 6870 w
9 /Palatino-Roman f
(environment) 1532 6870 w
(variable) 2090 6870 w
(contains) 2456 6870 w
(a) 2833 6870 w
(number) 2923 6870 w
(associated) 3282 6870 w
(with) 3737 6870 w
(the) 3965 6870 w
(processor) 4135 6870 w
(executing) 4565 6870 w
(a) 4995 6870 w
(recipe.) 720 6980 w
(It) 1036 6980 w
(can) 1125 6980 w
(be) 1290 6980 w
(used) 1410 6980 w
(to) 1627 6980 w
(create) 1734 6980 w
(unique) 1998 6980 w
(names) 2304 6980 w
(when) 2588 6980 w
(the) 2837 6980 w
(recipe) 2989 6980 w
(may) 3258 6980 w
(be) 3459 6980 w
(executing) 3579 6980 w
(simultaneously) 3991 6980 w
(on) 4629 6980 w
(several) 4758 6980 w
(processors.) 720 7090 w
(Other) 1217 7090 w
(maintenance) 1477 7090 w
(tools) 2012 7090 w
(provide) 2235 7090 w
(mechanisms) 2579 7090 w
(to) 3100 7090 w
(control) 3209 7090 w
(recipe) 3522 7090 w
(scheduling) 3793 7090 w
(explicitly) 4258 7090 w
([Cmel86],) 4655 7090 w
(but) 720 7200 w
9 /Courier f
(mk) 877 7200 w
9 /Palatino-Roman f
(') 985 7200 w
9 /Courier f
(s) 1010 7200 w
9 /Palatino-Roman f
(general) 1087 7200 w
(rules) 1405 7200 w
(are) 1625 7200 w
(sufficient) 1772 7200 w
(for) 2164 7200 w
(all) 2303 7200 w
(but) 2423 7200 w
(the) 2580 7200 w
(most) 2728 7200 w
(unusual) 2948 7200 w
(cases.) 3294 7200 w
cleartomark
showpage
saveobj restore
%%EndPage: 10 10
%%Page: 11 11
/saveobj save def
mark
11 pagesetup
9 /Palatino-Roman f
(\255 11 \255) 2782 470 w
9 /Palatino-Bold f
(13.) 720 830 w
(Deleting) 879 830 w
(target) 1262 830 w
(files) 1520 830 w
(on) 1723 830 w
(errors) 1851 830 w
9 /Palatino-Roman f
(The) 970 983 w
9 /Courier f
(D) 1149 983 w
9 /Palatino-Roman f
(attribute) 1232 983 w
(causes) 1605 983 w
9 /Courier f
(mk) 1892 983 w
9 /Palatino-Roman f
(to) 2029 983 w
(remove) 2138 983 w
(the) 2469 983 w
(target) 2623 983 w
(file) 2886 983 w
(when) 3040 983 w
(a) 3291 983 w
(recipe) 3365 983 w
(terminates) 3636 983 w
(prematurely.) 4087 983 w
(The) 4659 983 w
(error) 4839 983 w
(message) 720 1093 w
(describing) 1083 1093 w
(the) 1526 1093 w
(termination) 1677 1093 w
(condition) 2172 1093 w
(warns) 2579 1093 w
(of) 2851 1093 w
(the) 2957 1093 w
(deletion.) 3108 1093 w
(A) 3505 1093 w
(partially) 3601 1093 w
(built) 3965 1093 w
(file) 4177 1093 w
(is) 4328 1093 w
(doubly) 4418 1093 w
(danger\255) 4729 1093 w
(ous:) 720 1203 w
(it) 911 1203 w
(is) 993 1203 w
(not) 1083 1203 w
(only) 1241 1203 w
(wrong,) 1445 1203 w
(but) 1757 1203 w
(is) 1917 1203 w
(also) 2007 1203 w
(considered) 2192 1203 w
(to) 2656 1203 w
(be) 2762 1203 w
(up) 2881 1203 w
(to) 3015 1203 w
(date) 3121 1203 w
(so) 3320 1203 w
(a) 3434 1203 w
(subsequent) 3505 1203 w
9 /Courier f
(mk) 3984 1203 w
9 /Palatino-Roman f
(will) 4119 1203 w
(not) 4299 1203 w
(rebuild) 4458 1203 w
(it.) 4775 1203 w
(For) 4904 1203 w
(example,) 720 1313 w
8 /Courier f
(pic.out:D:) 1008 1485 w
(mk.ms) 1584 1485 w
(pic $prereq | tbl | troff \255ms > $target) 1392 1585 w
9 /Palatino-Roman f
(produces) 720 1767 w
(the) 1113 1767 w
(message) 1261 1767 w
8 /Courier f
(mk: pic mk.ms | ...) 1008 1939 w
(: exit status=rc 685: deleting 'pic.out') 2016 1939 w
9 /Palatino-Roman f
(if) 720 2121 w
(any) 799 2121 w
(program) 969 2121 w
(in) 1342 2121 w
(the) 1443 2121 w
(recipe) 1591 2121 w
(exits) 1856 2121 w
(with) 2063 2121 w
(an) 2269 2121 w
(error) 2389 2121 w
(status.) 2613 2121 w
9 /Palatino-Bold f
(14.) 720 2362 w
(Unspecified) 879 2362 w
(dependencies) 1402 2362 w
9 /Palatino-Roman f
(The) 970 2515 w
9 /Courier f
(\255w) 1150 2515 w
9 /Palatino-Roman f
(command) 1288 2515 w
(line) 1718 2515 w
(flag) 1895 2515 w
(forces) 2076 2515 w
(the) 2343 2515 w
(files) 2498 2515 w
(following) 2691 2515 w
(the) 3106 2515 w
(flag) 3261 2515 w
(to) 3443 2515 w
(be) 3554 2515 w
(treated) 3678 2515 w
(as) 3991 2515 w
(if) 4105 2515 w
(they) 4192 2515 w
(were) 4398 2515 w
(just) 4626 2515 w
(modi\255) 4800 2515 w
(fied.) 720 2625 w
(We) 946 2625 w
(can) 1105 2625 w
(use) 1268 2625 w
(this) 1429 2625 w
(flag) 1601 2625 w
(with) 1778 2625 w
(a) 1987 2625 w
(command) 2058 2625 w
(that) 2484 2625 w
(selects) 2666 2625 w
(files) 2949 2625 w
(to) 3137 2625 w
(force) 3242 2625 w
(a) 3466 2625 w
(build) 3536 2625 w
(based) 3772 2625 w
(on) 4028 2625 w
(the) 4155 2625 w
(selection) 4305 2625 w
(criterion.) 4678 2625 w
(For) 720 2735 w
(example,) 879 2735 w
(if) 1262 2735 w
(the) 1341 2735 w
(declaration) 1489 2735 w
(of) 1961 2735 w
(a) 2065 2735 w
(global) 2134 2735 w
(variable) 2405 2735 w
(named) 2751 2735 w
9 /Palatino-Italic f
(var) 3049 2735 w
9 /Palatino-Roman f
(is) 3200 2735 w
(changed) 3288 2735 w
(in) 3649 2735 w
(a) 3751 2735 w
(header) 3820 2735 w
(file,) 4118 2735 w
(all) 4290 2735 w
(source) 4411 2735 w
(files) 4696 2735 w
(that) 4883 2735 w
(reference) 720 2845 w
(it) 1109 2845 w
(can) 1188 2845 w
(be) 1348 2845 w
(rebuilt) 1464 2845 w
(with) 1752 2845 w
(the) 1958 2845 w
(command) 2106 2845 w
8 /Courier f
($ mk \255w`{grep \255l) 1008 3017 w
8 /Palatino-Italic f
(var) 1824 3017 w
8 /Courier f
(*.[cyl]}) 1978 3017 w
9 /Palatino-Bold f
(15.) 720 3258 w
(Conclusion) 879 3258 w
9 /Palatino-Roman f
(There) 970 3411 w
(are) 1229 3411 w
(many) 1383 3411 w
(programs) 1639 3411 w
(related) 2057 3411 w
(to) 2365 3411 w
9 /Courier f
(make) 2475 3411 w
9 /Palatino-Roman f
(,) 2691 3411 w
(each) 2744 3411 w
(choosing) 2954 3411 w
(a) 3343 3411 w
(different) 3419 3411 w
(balance) 3795 3411 w
(between) 4127 3411 w
(specialization) 4494 3411 w
(and) 720 3521 w
(generality.) 905 3521 w
9 /Courier f
(Mk) 1385 3521 w
9 /Palatino-Roman f
(emphasizes) 1526 3521 w
(generality) 2022 3521 w
(but) 2456 3521 w
(allows) 2623 3521 w
(customization) 2916 3521 w
(through) 3514 3521 w
(its) 3870 3521 w
(pattern) 3996 3521 w
(specifications) 4318 3521 w
(and) 4888 3521 w
(include) 720 3631 w
(facilities.) 1039 3631 w
(Plan) 970 3784 w
(9) 1181 3784 w
(presents) 1260 3784 w
(a) 1628 3784 w
(difficult) 1707 3784 w
(problem,) 2058 3784 w
(particularly) 2453 3784 w
(because) 2955 3784 w
(of) 3302 3784 w
(its) 3417 3784 w
(heterogeneous) 3546 3784 w
(collection) 4165 3784 w
(of) 4583 3784 w
(architec\255) 4698 3784 w
(tures) 720 3894 w
(and) 950 3894 w
(languages.) 1131 3894 w
9 /Courier f
(Mk) 1609 3894 w
9 /Palatino-Roman f
(') 1717 3894 w
9 /Courier f
(s) 1742 3894 w
9 /Palatino-Roman f
(flexible) 1825 3894 w
(specification) 2145 3894 w
(language) 2674 3894 w
(and) 3068 3894 w
(simple) 3249 3894 w
(interaction) 3544 3894 w
(with) 4003 3894 w
9 /Courier f
(rc) 4215 3894 w
9 /Palatino-Roman f
(work) 4351 3894 w
(well) 4590 3894 w
(in) 4788 3894 w
(this) 4894 3894 w
(environment.) 720 4004 w
(As) 970 4157 w
(a) 1104 4157 w
(result,) 1175 4157 w
(Plan) 1451 4157 w
(9) 1654 4157 w
(relies) 1725 4157 w
(on) 1963 4157 w
9 /Courier f
(mk) 2091 4157 w
9 /Palatino-Roman f
(to) 2225 4157 w
(automate) 2331 4157 w
(almost) 2733 4157 w
(all) 3027 4157 w
(maintenance.) 3150 4157 w
(Tasks) 3730 4157 w
(as) 3983 4157 w
(diverse) 4093 4157 w
(as) 4412 4157 w
(updating) 4522 4157 w
(the) 4915 4157 w
(network) 720 4267 w
(data) 1079 4267 w
(base,) 1277 4267 w
(producing) 1499 4267 w
(the) 1939 4267 w
(manual,) 2087 4267 w
(or) 2434 4267 w
(building) 2543 4267 w
(a) 2905 4267 w
(release) 2973 4267 w
(are) 3270 4267 w
(expressed) 3417 4267 w
(as) 3837 4267 w
9 /Courier f
(mk) 3943 4267 w
9 /Palatino-Roman f
(procedures.) 4074 4267 w
9 /Palatino-Bold f
(16.) 720 4508 w
(References) 879 4508 w
9 /Palatino-Roman f
([Cmel86]) 720 4661 w
(R.) 1110 4661 w
(F.) 1221 4661 w
(Cmelik,) 1322 4661 w
(``Concurrent) 1661 4661 w
(Make:) 2196 4661 w
(A) 2471 4661 w
(Distributed) 2569 4661 w
(Program) 3054 4661 w
(in) 3432 4661 w
(Concurrent) 3539 4661 w
(C'',) 4025 4661 w
(AT&T) 4191 4661 w
(Bell) 4470 4661 w
(Laborato\255) 4649 4661 w
(ries) 720 4771 w
(Technical) 886 4771 w
(Report,) 1288 4771 w
(1986.) 1607 4771 w
([Feld79]) 720 4924 w
(S.) 1070 4924 w
(I.) 1167 4924 w
(Feldman,) 1247 4924 w
(``Make) 1646 4924 w
9 /LucidaSansUnicode20 f
(\024) 1946 4924 w
9 /Palatino-Roman f
(a) 2062 4924 w
(program) 2134 4924 w
(for) 2511 4924 w
(maintaining) 2654 4924 w
(computer) 3164 4924 w
(programs'',) 3577 4924 w
9 /Palatino-Italic f
(Software) 4065 4924 w
(Practice) 4412 4924 w
(&) 4733 4924 w
(Expe\255) 4830 4924 w
(rience) 720 5034 w
(,) 960 5034 w
9 /Palatino-Roman f
(1979) 1006 5034 w
(Vol) 1209 5034 w
(9) 1373 5034 w
(#4,) 1441 5034 w
(pp.) 1577 5034 w
(255\255266.) 1731 5034 w
([Flan95]) 720 5187 w
(Bob) 1066 5187 w
(Flandrena,) 1244 5187 w
(``Plan) 1694 5187 w
(9) 1944 5187 w
(Mkfiles'',) 2012 5187 w
(this) 2407 5187 w
(volume.) 2576 5187 w
([Hume87]) 720 5340 w
(A.) 1144 5340 w
(G.) 1260 5340 w
(Hume,) 1374 5340 w
(``Mk:) 1671 5340 w
(A) 1903 5340 w
(Successor) 1996 5340 w
(to) 2406 5340 w
(Make'',) 2509 5340 w
9 /Palatino-Italic f
(USENIX) 2829 5340 w
(Summer) 3192 5340 w
(Conf.) 3525 5340 w
(Proc.,) 3746 5340 w
9 /Palatino-Roman f
(Phoenix,) 3982 5340 w
(Az.) 4352 5340 w
9 /Palatino-Bold f
(17.) 720 5581 w
(Appendix:) 879 5581 w
(Differences) 1335 5581 w
(between) 1838 5581 w
9 /Courier f
(make) 2211 5581 w
9 /Palatino-Bold f
(and) 2450 5581 w
9 /Courier f
(mk) 2628 5581 w
9 /Palatino-Roman f
(The) 970 5734 w
(differences) 1143 5734 w
(between) 1602 5734 w
9 /Courier f
(mk) 1961 5734 w
9 /Palatino-Roman f
(and) 2092 5734 w
9 /Courier f
(make) 2267 5734 w
9 /Palatino-Roman f
(are:) 2506 5734 w
9 /LucidaSansUnicode22 f
(\031) 720 5887 w
9 /Courier f
(Make) 855 5887 w
9 /Palatino-Roman f
(builds) 1095 5887 w
(targets) 1368 5887 w
(when) 1664 5887 w
(it) 1910 5887 w
(needs) 1990 5887 w
(them,) 2246 5887 w
(allowing) 2498 5887 w
(systematic) 2873 5887 w
(use) 3317 5887 w
(of) 3477 5887 w
(side) 3582 5887 w
(effects.) 3769 5887 w
9 /Courier f
(Mk) 4094 5887 w
9 /Palatino-Roman f
(constructs) 4227 5887 w
(the) 4660 5887 w
(entire) 4810 5887 w
(dependency) 855 5997 w
(graph) 1365 5997 w
(before) 1625 5997 w
(building) 1900 5997 w
(any) 2262 5997 w
(target.) 2432 5997 w
9 /LucidaSansUnicode22 f
(\031) 720 6150 w
9 /Courier f
(Make) 855 6150 w
9 /Palatino-Roman f
(supports) 1103 6150 w
(suffix) 1490 6150 w
(rules) 1748 6150 w
(and) 1978 6150 w
9 /Courier f
(%) 2163 6150 w
9 /Palatino-Roman f
(metarules.) 2250 6150 w
9 /Courier f
(Mk) 2723 6150 w
9 /Palatino-Roman f
(supports) 2864 6150 w
9 /Courier f
(%) 3251 6150 w
9 /Palatino-Roman f
(and) 3338 6150 w
(regular) 3523 6150 w
(expression) 3846 6150 w
(metarules.) 4306 6150 w
(\(Older) 4779 6150 w
(versions) 855 6260 w
(of) 1212 6260 w
9 /Courier f
(make) 1315 6260 w
9 /Palatino-Roman f
(support) 1554 6260 w
(only) 1893 6260 w
(suffix) 2094 6260 w
(rules.\)) 2342 6260 w
9 /LucidaSansUnicode22 f
(\031) 720 6413 w
9 /Courier f
(Mk) 855 6413 w
9 /Palatino-Roman f
(performs) 986 6413 w
(transitive) 1375 6413 w
(closure) 1775 6413 w
(on) 2085 6413 w
(metarules,) 2210 6413 w
9 /Courier f
(make) 2650 6413 w
9 /Palatino-Roman f
(does) 2889 6413 w
(not.) 3098 6413 w
9 /LucidaSansUnicode22 f
(\031) 720 6566 w
9 /Courier f
(Make) 855 6566 w
9 /Palatino-Roman f
(supports) 1094 6566 w
(cyclic) 1471 6566 w
(dependencies,) 1716 6566 w
9 /Courier f
(mk) 2306 6566 w
9 /Palatino-Roman f
(does) 2437 6566 w
(not.) 2646 6566 w
9 /LucidaSansUnicode22 f
(\031) 720 6719 w
9 /Courier f
(Make) 855 6719 w
9 /Palatino-Roman f
(evaluates) 1100 6719 w
(recipes) 1505 6719 w
(one) 1815 6719 w
(line) 1990 6719 w
(at) 2167 6719 w
(a) 2272 6719 w
(time,) 2347 6719 w
(replacing) 2578 6719 w
(variables) 2980 6719 w
(by) 3370 6719 w
(their) 3500 6719 w
(values) 3717 6719 w
(and) 4004 6719 w
(executing) 4186 6719 w
(some) 4601 6719 w
(com\255) 4841 6719 w
(mands) 855 6829 w
(internally.) 1147 6829 w
9 /Courier f
(Mk) 1602 6829 w
9 /Palatino-Roman f
(passes) 1733 6829 w
(the) 2012 6829 w
(entire) 2160 6829 w
(recipe) 2413 6829 w
(to) 2678 6829 w
(the) 2781 6829 w
(shell) 2929 6829 w
(without) 3137 6829 w
(interpretation) 3477 6829 w
(or) 4053 6829 w
(internal) 4162 6829 w
(execution.) 4495 6829 w
9 /LucidaSansUnicode22 f
(\031) 720 6982 w
9 /Courier f
(Make) 855 6982 w
9 /Palatino-Roman f
(supports) 1097 6982 w
(parallel) 1477 6982 w
(execution) 1804 6982 w
(of) 2215 6982 w
(single\255line) 2321 6982 w
(recipes) 2759 6982 w
(when) 3065 6982 w
(building) 3313 6982 w
(the) 3678 6982 w
(prerequisites) 3830 6982 w
(for) 4374 6982 w
(specified) 4517 6982 w
(tar\255) 4899 6982 w
(gets.) 855 7092 w
9 /Courier f
(Mk) 1087 7092 w
9 /Palatino-Roman f
(supports) 1220 7092 w
(parallel) 1599 7092 w
(execution) 1925 7092 w
(of) 2334 7092 w
(all) 2438 7092 w
(recipes.) 2559 7092 w
(\(Older) 2909 7092 w
(versions) 3194 7092 w
(of) 3552 7092 w
9 /Courier f
(make) 3656 7092 w
9 /Palatino-Roman f
(did) 3896 7092 w
(not) 4056 7092 w
(support) 4212 7092 w
(parallel) 4552 7092 w
(exe\255) 4877 7092 w
(cution.\)) 855 7202 w
cleartomark
showpage
saveobj restore
%%EndPage: 11 11
%%Page: 12 12
/saveobj save def
mark
12 pagesetup
9 /Palatino-Roman f
(\255 12 \255) 2782 470 w
9 /LucidaSansUnicode22 f
(\031) 720 830 w
9 /Courier f
(Make) 855 830 w
9 /Palatino-Roman f
(uses) 1098 830 w
(special) 1298 830 w
(targets) 1597 830 w
(\(beginning) 1896 830 w
(with) 2354 830 w
(a) 2564 830 w
(period\)) 2637 830 w
(to) 2959 830 w
(indicate) 3067 830 w
(special) 3412 830 w
(processing.) 3712 830 w
9 /Courier f
(Mk) 4213 830 w
9 /Palatino-Roman f
(uses) 4349 830 w
(attributes) 4550 830 w
(to) 4960 830 w
(modify) 855 940 w
(rule) 1168 940 w
(evaluation.) 1350 940 w
9 /LucidaSansUnicode22 f
(\031) 720 1086 w
9 /Courier f
(Mk) 855 1086 w
9 /Palatino-Roman f
(supports) 986 1086 w
(virtual) 1363 1086 w
(targets) 1654 1086 w
(that) 1949 1086 w
(are) 2129 1086 w
(independent) 2276 1086 w
(of) 2804 1086 w
(the) 2907 1086 w
(file) 3055 1086 w
(system.) 3203 1086 w
9 /LucidaSansUnicode22 f
(\031) 720 1232 w
9 /Courier f
(Mk) 855 1232 w
9 /Palatino-Roman f
(allows) 986 1232 w
(non\255standard) 1269 1232 w
(out\255of\255date) 1832 1232 w
(determination,) 2302 1232 w
9 /Courier f
(make) 2915 1232 w
9 /Palatino-Roman f
(does) 3154 1232 w
(not.) 3363 1232 w
(It) 970 1378 w
(is) 1054 1378 w
(usually) 1141 1378 w
(easy) 1457 1378 w
(to) 1656 1378 w
(convert) 1759 1378 w
(a) 2084 1378 w
9 /Courier f
(makefile) 2152 1378 w
9 /Palatino-Roman f
(to) 2607 1378 w
(or) 2710 1378 w
(from) 2819 1378 w
(an) 3037 1378 w
(equivalent) 3157 1378 w
9 /Courier f
(mkfile) 3600 1378 w
9 /Palatino-Roman f
(.) 3924 1378 w
cleartomark
showpage
saveobj restore
%%EndPage: 12 12
%%Trailer
done
%%DocumentFonts: LucidaSansUnicode20 LucidaSansUnicode22 Courier Palatino-Roman Palatino-Bold Palatino-Italic
%%Pages: 12
